使用OpenSL ES时“没有更多可用的曲目名称”

时间:2012-03-15 13:18:10

标签: android audio opensl

我正在使用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)时,我都被迫Destroy()(并重新创建)Player-objects?

1 个答案:

答案 0 :(得分:1)

每个设备似乎是32个对象。因此,只要不需要DestroyonStop),onDestroy就更好了