Sto utilizzando la traccia audio per riprodurre suoni diversi, in modalità streaming. Mi piacerebbe sapere se c'è un modo per sapere quando ogni suono/finisce.AudioTrack - come sapere quando un suono inizia/finisce?
ho creare la traccia audio in questo modo:
AudioTrack tmpAudioTrack = new AudioTrack(
STREAM_TYPE,
SAMPLE_RATE,
CHANNEL_CONFIG_TYPE,
AUDIO_FORMAT_TYPE,
getOptimalBufferSize(),
AUDIO_TRACK_MODE);'
e avviarlo in un thread in background:
backround_thread = new Thread(new MyRunnable(aTrack));
backround_thread.start();
scrivo ogni suono come questo all'interno del eseguibile:
byte generatedSnd[] = new byte[2 * beepSamples];
<code for filling the buffer with sound here>
int bytesWritten = track.write(generatedSnd, 0, generatedSnd.length);
È possibile utilizzare qualsiasi API AudioTrack come setNotificationMarkerPosition o setLoopPoints o se tPositionNotificationPeriod per realizzare questo? e come funzionano?
Ogni suono può avere una durata diversa. Penso che questa sia la chiave.
Non capisco completamente la documentazione di queste API. Ogni fotogramma è uguale a un campione? Come faccio a specificare un indicatore per dove ogni suono inizia/finisce?
Grazie,
Almeno qualcuno conosce la differenza tra setNotificationMarkerPosition e setPositionNotificationPeriod? – mikemeli