Używam ścieżki dźwiękowej do odtwarzania różnych dźwięków w trybie strumieniowym. Chciałbym wiedzieć, czy istnieje sposób, aby wiedzieć, kiedy każdy dźwięk/kończy grę.AudioTrack - jak sprawdzić, kiedy dźwięk się zaczyna/kończy?
utworzyć ścieżkę dźwiękową tak:
AudioTrack tmpAudioTrack = new AudioTrack(
STREAM_TYPE,
SAMPLE_RATE,
CHANNEL_CONFIG_TYPE,
AUDIO_FORMAT_TYPE,
getOptimalBufferSize(),
AUDIO_TRACK_MODE);'
i uruchomić go w wątku tła:
backround_thread = new Thread(new MyRunnable(aTrack));
backround_thread.start();
piszę każdy dźwięk tak wewnątrz runnable:
byte generatedSnd[] = new byte[2 * beepSamples];
<code for filling the buffer with sound here>
int bytesWritten = track.write(generatedSnd, 0, generatedSnd.length);
Możliwe jest użycie dowolnego z interfejsów API AudioTrack, takich jak setNotificationMarkerPosition lub setLoopPoints lub se tPositionNotificationPeriod, aby to osiągnąć? i jak działają?
Każdy dźwięk może mieć różny czas trwania. Myślę, że to jest kluczowe.
Nie w pełni rozumiem dokumentację tych interfejsów API. Czy każda klatka jest taka sama jak próbka? Jak określić znacznik miejsca rozpoczęcia/zakończenia dźwięku?
Dzięki,
Przynajmniej ktoś wie różnicę między setNotificationMarkerPosition a setPositionNotificationPeriod? – mikemeli