2011-09-11 41 views
1

我们遇到了在AudioTrack类(http://code.google.com/p/android/issues/detail?id=17995)重新使用AudioTrack实例

是否有内存泄漏反正重复使用具有不同波形数据的AudioTrack实例? AudioTracks需要处于静态模式以实现低延迟。

我们基本上想要分配(例如)16个AudioTrack实例,并在播放某些sound-fx时重新使用它们。问题似乎是写入到已使用的AudioTrack导致崩溃,即使AudioTrack已停止。

有人请关心帮忙吗?我试图做甚至可能吗?

谢谢,

Steve。

回答

1

如果您尝试使用有限数量的音轨,您是否尝试过使用静态模式?

来自@Steve Haggerty的评论如下:据报道在某些版本的Android中有内存泄漏,并且STREAM模式是所有开发工作的首选。

+0

我们正在使用静态模式。 我可以在静态模式下设置AudioTracks,并用不同的音频数据重新使用SAME AudioTracks。因为目前,如果我尝试写入已使用不同数据播放的AudioTrack,则会发生崩溃。 Steve。 –

+0

是的,你不能改变静态轨道中的数据:你可以重新加载它来重放,但就是这样。如果您的音轨数量有限,您是否需要使用不同的数据,您是不是可以为每个音频文件生成一个音轨并重新使用这些音轨? – Femi

+3

收到Google发回的电子邮件。 STATIC内容存在内存泄漏。您应该为所有音频使用STREAM模式。即使在流模式下,延迟也可以忽略不计。 –