【问题标题】:Re-using AudioTrack instances重用 AudioTrack 实例
【发布时间】:2011-09-11 18:46:21
【问题描述】:

我们在 AudioTrack 类中遇到了内存泄漏 (http://code.google.com/p/android/issues/detail?id=17995)

有没有办法重复使用具有不同波形数据的 AudioTrack 实例? AudioTrack 需要处于静态模式以降低延迟。

我们基本上希望分配(例如)16 个 AudioTrack 实例,并在播放一些音效时重新使用它们。问题似乎是写入已使用的 AudioTrack 导致崩溃,即使 AudioTrack 已停止。

有人愿意帮忙吗?我正在尝试做的事情是否可能?

谢谢,

史蒂夫。

【问题讨论】:

    标签: android memory-leaks native


    【解决方案1】:

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

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

    【讨论】:

    • 我们使用的是静态模式。我可以在静态模式下设置 AudioTrack 并重新使用具有不同音频数据的 SAME AudioTrack。因为目前,如果我尝试写入已经使用不同数据播放的 AudioTrack,我会崩溃。史蒂夫。
    • 是的,您不能更改静态轨道中的数据:您可以重新加载它以重播,但仅此而已。如果您的音轨数量有限,您是否需要使用不同的数据,您不能为每个音频文件生成一个音轨并重复使用它们吗?
    • 收到了来自 Google 的电子邮件。 STATIC 内容中存在内存泄漏。您应该对所有音频使用 STREAM 模式。即使在流模式下,延迟也可以忽略不计。
    • 很高兴知道:我会给出答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多