【发布时间】: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)时,我都必须销毁()(并重新创建)播放器对象?
【问题讨论】: