2011-12-29 5 views
0

複数のオーディオファイルを順番に再生しようとしていますが、現在AsyncTasksを使用してmediaPlayerを準備していますが、最後に次のトラックに移動するのにはうまくいかない現在のもの。毎回すべてのオーディオファイルが再生されるわけではなく、再生はブール値で決定されます。AsyncTasksとAudio

何か助力がありがたいです。

答えて

1

私はあなたがアンドロイド-SDK /ドキュメント/参照/アンドロイド/メディア/ MediaPlayer.htmlを読んだことがあると思い、それは言う:

再生が終わりに達した場合再生が終了します。 ループモードが真にsetLooping(ブール値)に設定されていた場合、 MediaPlayerオブジェクトはStarted状態のままになります。ループ モードがfalseに設定されている場合、 OnCompletionListenerが事前に setOnCompletionListener(OnCompletionListener)を介して登録されている場合、Playerエンジンは コールバックメソッド、OnCompletion.onCompletion()を呼び出します。 コールバックの呼び出しにより、オブジェクトはPlaybackCompleted 状態になります。 PlaybackCompleted状態で、start()を呼び出すと、オーディオ/ビデオソースの先頭から再生が再開されます。

したがって、新しいソースを設定し、prepareAsyncを完了コールバックで開始することができます。このようにして、連続再生が得られますが、シームレスではありません。

+0

これは、同じmediaPlayerを使用してすべてのトラックを再生する素晴らしい方法です – Flynn

0

これはMediaPlayerを使用しているかどうかは間違いありません。このチュートリアルを試してみてください:

http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html

それはあなたがおそらく彼らはAudioTrackを使用してハードウェアに直接その結果をストリーム一緒に自分で音をミックスする必要があります動作しない場合。それはより低レベルですが、それはあなたに最もコントロールを与えます。 AudioManagerソリューションがあなたのために働くかどうかは、あなたが何をしているかによって異なります。間違いなく簡単なルートです。しかし、2つのサンプルを整列させようとしている場合、音楽アプリのように次のものが始まると、おそらくオーディオをミックスしてストリームする必要があります。

http://developer.android.com/reference/android/media/AudioTrack.html

Algorithm to mix sound