0

私は、1 つのオーディオ ファイルを取り、再生するオーディオ プレーヤー モジュールで作業しています。AvAudioPlayer を使用してオーディオ ファイルを再生していますが、期待どおりに動作しており、オーディオの再生が終了するとコールバックが返ってきます。これまでのところ、負の値を持つnumberOfLoopsプロパティによるループを実装しまし た。場合によっては、現在のオーディオの初回再生が終了したらコールバックする必要があります。コールバックまたはオブザーバーを取得して、オーディオが初めて再生されたことを通知する方法はありますか?

私の考えは、タイマーを実行することでこれを達成できるということです。最善のアプローチは何ですか?

ジェネリック: オーディオ再生が完了するたびに、無限ループがあっても通知を期待します。

4

1 に答える 1

4

最初に numberofloops=0 を作成します。このデリゲート メソッドを使用して、このメソッドが呼び出すようにします。 - (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) appSoundPlayer successfully: (BOOL) flag

次に、そのメソッドで numberofloops= -1 を作成して、最初の通知を取得し、ループが継続した後に行うことができます。そして[プレイヤープレイ]..

また、numberofloops= 0 を audioPlayerDidFinishPlaying に書き込んで再生すると、audioPlayerDidFinishPlaying がループのように呼び出されるたびに、それぞれの通知を受け取ることができます。

于 2013-03-26T13:07:03.833 に答える