2

我正在使用 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)时,我都被迫销毁()(并重新创建)播放器对象?

4

1 回答 1

2

每个设备似乎有 32 个对象。因此,Destroy在不需要时对他们更好(onStoponDestroy

于 2012-04-19T11:02:41.843 回答