2012-03-15 2 views
2

OpenSL ES를 사용하고 있고 안드로이드 앱에 여러 채널이 필요하므로 여러 개의 플레이어 개체 (각 MP3 파일에 대해 하나의 플레이어 개체 연주해야 함). 이것은 하나의 응용 프로그램에 대해 잘 작동하지만 내가 만든 다른 응용 프로그램을 실행할 때, 어떤 사운드를 재생하지 못하는 파일이 내가 나갈거야 의미 내가 읽은,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/에 따라 그러나

,

안드로이드에 대한

OpenSL ES 응용 프로그램 당 하나의 엔진을 지원하며,

그래서입니다 최대 32 개체를 그 (32) 응용 프로그램 당 객체, 또는 세계적이다 32 개체? 그렇다면 앱이 비활성화 될 때마다 (onPause/onStop) Player 객체를 파괴() (및 재 작성)해야합니다.

답변

1

장치 당 32 개 개체로 보입니다. 그러므로 필요할 때마다 Destroy에 더 좋습니다 (onStop, onDestroy)