gpt4 book ai didi

java - 暂停后无法恢复 AudioTrack

转载 作者:行者123 更新时间:2023-11-30 10:29:34 30 4
gpt4 key购买 nike

我目前正在流模式下使用 AudioTrack 来播放一些预先录制的轨道。播放和停止机制正常工作。但是,当我按下暂停并尝试在之后恢复时,缓冲区只读取 -1,表明已达到 EOF。

我尝试标记并重置输入流,就像某些帖子中建议的那样,但没有帮助。

public void pauseTrack() {
currentAudioTrack.pause();
isPaused = true;
}

public void resumeTrack() {
isPaused = false;
}

@Override public void run() {
try {
while (offset < audioFile.length()) {
if (isPaused)
continue;
currentAudioTrack.play();
int numberOfBytesRead = fileInputStream.read(audioData);
if (numberOfBytesRead != -1) {
currentAudioTrack.write(audioData, 0, numberOfBytesRead);
offset+=numberOfBytesRead;
}
else {
return;
}
}
Log.v("status", "finished reading");
} catch (IOException io) {
Log.v("Exception", "IOException found: " + io.getLocalizedMessage());
} catch (IllegalStateException ie) {
Log.v("Exception","IllegalStateException:" + ie.getLocalizedMessage());
}
}

我做错了什么?

最佳答案

为了结束这篇文章,我最终更改为 AudioTrack 静态模式。更改不是因为暂停情况,而是最终解决了它。由于缓冲区写入是一次性完成的,因此不会出现流模式的挑战。

关于java - 暂停后无法恢复 AudioTrack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43989949/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com