オーディオ トラックを使用して、ストリーム モードで別のサウンドを再生しています。各サウンドの再生中/再生終了を知る方法があるかどうかを知りたいです。
次のようにオーディオ トラックを作成します。
AudioTrack tmpAudioTrack = new AudioTrack(
STREAM_TYPE,
SAMPLE_RATE,
CHANNEL_CONFIG_TYPE,
AUDIO_FORMAT_TYPE,
getOptimalBufferSize(),
AUDIO_TRACK_MODE);'
そして、バックグラウンド スレッドで開始します。
backround_thread = new Thread(new MyRunnable(aTrack));
backround_thread.start();
ランナブル内に次のように各サウンドを記述します。
byte generatedSnd[] = new byte[2 * beepSamples];
<code for filling the buffer with sound here>
int bytesWritten = track.write(generatedSnd, 0, generatedSnd.length);
setNotificationMarkerPosition、setLoopPoints、setPositionNotificationPeriod などの AudioTrack API を使用してこれを達成できますか? そしてそれらはどのように機能しますか?
各サウンドは、異なる持続時間になる場合があります。これが鍵だと思います。
これらの API のドキュメントを完全には理解していません。各フレームはサンプルと同じですか? 各サウンドの開始/終了位置にマーカーを指定するにはどうすればよいですか?
ありがとう、