【问题标题】:"No more track names available" when using OpenSL ES使用 OpenSL ES 时“没有更多可用的轨道名称”
【发布时间】:2012-04-19 19:02:41
【问题描述】:

我正在使用 OpenSL ES,而我的 android 应用程序需要多个频道,因此我创建了多个播放器对象(为我需要播放的每个 mp3 文件加上一个播放器对象)。这适用于一个应用程序,但是当我运行我创建的另一个应用程序时,它将无法播放任何声音和日志文件说

E/AudioFlinger(  119): no more track names available
E/AudioTrack( 6884): AudioFlinger could not create track, status: -12
E/libOpenSLES( 6884): AudioTrack::initCheck status 4294967284
W/libOpenSLES( 6884): Leaving Object::Realize (SL_RESULT_CONTENT_UNSUPPORTED)

好的,我读到这意味着我没有可用的对象,我应该释放一些对象。

但是,根据http://mobilepearls.com/labs/native-android-api/opensles/

适用于 Android 的 OpenSL ES 支持每个应用程序使用一个引擎,并且 最多 32 个对象

那么是每个应用程序有 32 个对象,还是全局 32 个对象?如果是这样,每次我的应用程序变为非活动状态(onPause/onStop)时,我都必须销毁()(并重新创建)播放器对象?

【问题讨论】:

    标签: android audio opensl


    【解决方案1】:

    每个设备似乎有 32 个对象。所以最好在不需要的时候Destroy他们(onStoponDestroy

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-13
      • 2014-05-08
      • 2012-12-23
      • 2011-10-09
      • 2013-10-29
      相关资源
      最近更新 更多