我正在使用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?
答案 0 :(得分:1)
每个设备似乎是32个对象。因此,只要不需要Destroy
,onStop
),onDestroy
就更好了