2012-03-15 9 views
2

OpenSL ESを使用していて、アンドロイドアプリに複数のチャンネルが必要なため、複数のプレーヤーオブジェクト(mp3ファイルI再生する必要があります)。これは、1つのアプリケーションのために正常に動作しますが、私は、私が作成した別のアプリを実行したとき、それは任意のサウンドを再生するために失敗し、ファイルが、これは私が外だ意味私が読んだ、OpenSL ESを使用しているときに「使用可能なトラック名がありません」

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)になるたびにPlayerオブジェクトを破棄(強制)して再作成しますか?

答えて

1

デバイスごとに32個のオブジェクトが表示されます。したがって、必要でないときはいつでも、Destroyの方がよいでしょう(onStop,onDestroy

関連する問題