Android AudioTrack 仅播放前 2 秒,然后停止

标签 android audio buffer delay

我正在使用 AudioTrack 的额外线程来播放我之前在另一个 Activity 中录制的波形文件。

当我开始播放时,我在 LogCat 中得到以下输出:

09-13 09:13:13.207: WARN/Archive(1066): audioplayThread is running..., state is: READY
09-13 09:13:21.187: WARN/Archive(1066): wave file /mnt/sdcard/myrecording/myrecording_3_12-09-2011_14-14.wav
09-13 09:13:22.582: WARN/Archive(1066): audioPlayer bufferSize 4090
09-13 09:13:22.582: WARN/Archive(1066): audioPlayer wave length 206432
09-13 09:13:22.601: DEBUG/AudioHardware(75): AudioHardware pcm playback is exiting standby.
09-13 09:13:22.601: DEBUG/AudioHardware(75): openPcmOut_l() mPcmOpenCnt: 0
09-13 09:13:22.683: WARN/AudioFlinger(75): write blocked for 82 msecs, 1 delayed writes, thread 0xcb08
09-13 09:13:24.816: WARN/Archive(1066): playbackHeadposition is: 49591
09-13 09:13:24.816: WARN/Archive(1066): audiostate is: 3
09-13 09:13:26.089: WARN/AudioTrack(1066): obtainBuffer() track 0x298b18 disabled, restarting
09-13 09:13:27.214: WARN/AudioTrack(1066): obtainBuffer() track 0x298b18 disabled, restarting
09-13 09:13:28.332: WARN/AudioTrack(1066): obtainBuffer() track 0x298b18 disabled, restarting
09-13 09:13:29.457: WARN/AudioTrack(1066): obtainBuffer() track 0x298b18 disabled, restarting

...

最佳答案

我刚刚看到logcat:obtainBuffer() track 0x298b18被禁用,正在重新启动.. 也就是说:您还没有获得音频数据并且输入音频流已停止。因此缓冲区必须等待音频流进入。我认为您应该检查输入流和读取方法。您必须确保您已连续读取音频数据。

关于Android AudioTrack 仅播放前 2 秒,然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398392/

相关文章:

node.js - 这是在接收到node.js音频流数据时的数据日志

ios - 在Swift中使用Audio Player更改UITableView中按钮单元格的播放暂停状态

emacs - 在 3 窗口设置中调用 ipython 编译时,如何强制 emacs 使用底部窗口而不是底部窗口

c++ - 如何在(视频)内存中创建缓冲区以使用 OpenGL 进行绘制?

android - 菜单项应指定标题

java - Libgdx 异步使用 ScreenUtils 并且不停止游戏循环

android - NinePatchDrawable > java.lang.ClassCastException

android - 当我通过 android 访问它而不是提供预期结果时,Web 服务提供输出 "Error"

windows-phone-7 - 如何一次播放多个 mp3/wma 文件?

c - 套接字缓冲区读取器的问题