2013-07-31 3 views
0

Android 2.3에서 OpenSLES를 사용할 때 문제가 있습니다. OpenSLES에서 활성 엔진 객체를 얻는 방법

내가 엔진 개체를 만들려고

, 나는 다음과 같은 오류가 발생했습니다 : slcreateengine을 나는 안드로이드 4에서이 문제를 발견하지 않았기 때문에 다른 엔진이

나는 안드로이드 (2.3 OpenSLES을 알고 활성화되어있는 동안?. x)는 단일 엔진을 지원하지만 다른 엔진이 어디에 있는지 간단히 알 수 없습니다.

OpenSLES에 이미 활성 엔진이 있는지 여부를 확인하는 인터페이스가 있습니까?

미리 감사드립니다.

답변

0

이것은 응용 프로그램이 작동하는 대부분의 시간뿐만 아니라 저를 괴롭 히고 있지만, 지금은이 오류가 사용 불능의 openSL 엔진으로 이어지는 것을 알지만, 안드로이드 2.3에서만이 점을 지적했습니다.

SL_RESULT_RESOURCE_ERROR는 pthread 오류, 메모리 부족 등 여러 가지 이유로 인해 발생할 수 있습니다. 그러나 이러한 오류 코드는 적절한 오류 코드를 반환합니다.

응용 프로그램 아키텍처가 더 복잡 할 수 있습니다. 엔진 객체를 만드는 코드가 여러 개입니까? 아니면 하나의 진입 점이 있습니까? 실제로는 OpenSL에서 활성 엔진 객체를 검색 할 수 없으므로 전달한 엔진 객체에 대한 모든 포인터/참조를 slCreateEngine-method에 저장해야합니다. 여러 번 실행하는 것이 가능하기 때문에 엔진 생성 메소드를 실행하기 전에 상태 (및 엔진 닫기)를 확인하는 것이 좋습니다 (예 : Activity의 onCreate/onPause/onResume-methods는 새로운 창조).

+0

엔진 개체에 정적 변수를 사용하여 문제를 해결 했으므로 하나의 활성 엔진이있는 한 새로운 엔진이 생성되지 않습니다 ... – jenny