Android 音轨停止的识别方法

Android 音轨停止的识别方法,android,Android,你好, 我在用音轨 audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, numSamples, AudioTrack.MODE_STATIC); audioTrack.write(generatedSnd, 0, numSamples) ; a

你好, 我在用音轨

audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
     sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
     AudioFormat.ENCODING_PCM_16BIT, numSamples,
     AudioTrack.MODE_STATIC);
audioTrack.write(generatedSnd, 0, numSamples) ;
audioTrack.play();
有没有办法识别audioTrack是否已停止

while(audioTrack.getPlayState() == AudioTrack.PLAYSTATE_PLAYING){
    i++;
    System.out.println(i);
}
不起作用


问候语

您对
play()
的调用可能位于后台线程中。然后您的
getPlayState()
可能会被调用。这是假设
play()
是一个阻塞调用,看起来是这样的。

由于您正在播放静态曲目,请使用
getPlaybackHeadPosition()
并将返回值与样本总数(注意,样本而不是字节-尽管它们的数字可能匹配)进行比较您的音频。

当您到达while循环时,您确定曲目处于播放状态吗?