0

こんにちは、PlayAtTime 関数で同時に再生を開始するために同期する AVAudioPlayers がいくつかあります。私のコードは、iOS 4 以降のすべての iOS で正常に動作していますが、iOS 6 では動作しません。他の誰かがこの問題に遭遇しましたか?

コード:

//Mixers are AVAUdioPlayer instances loaded from before and are fine
NSTimeInterval shortStartDelay = 0.00;            // seconds
NSTimeInterval now = player.deviceCurrentTime

[miXer.music playAtTime:now + shortStartDelay];
[miXer.music2 playAtTime:now + shortStartDelay];
[miXer.music3 playAtTime:now + shortStartDelay];
[miXer.music4 playAtTime:now + shortStartDelay];
[miXer.music5 playAtTime:now + shortStartDelay];

注: play 関数を使用すると、すべてが機能します (もちろん、ミキサーが同期していないことを除きます) が、playAtTime はファイルの再生に失敗します。

4

3 に答える 3

4

あなたの将来の時間は、働く時間よりも長くなければなりませdeviceCurrentTime-playAtTime:。ドキュメントには次のように書かれています:https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

shortStartDelay0 より大きい値を設定する必要があります。

編集:

prepareToPlayあるいは、最初に電話する必要があるかもしれません。

于 2012-10-15T18:39:04.067 に答える
1

元の AVAudioPlayer の playAtTime は、再生を開始する値のオフセットだけでは機能しないため、これを使用しています。

// カスタム関数

func playAtTime(time: NSTimeInterval) {
    mediaPlayer.pause()
    mediaPlayer.currentTime = time
    mediaPlayer.play()
}

この流れは私にとってはうまくいっています。

于 2016-05-23T13:25:06.213 に答える