2013-07-31 62 views
0

我在Android 2.3上使用OpenSLES時遇到了問題。如何在OpenSLES中獲取活動引擎對象

當我試圖建立一個引擎對象,我得到了以下錯誤: slcreateengine而另一個引擎是主動

我知道的Android(2.3 OpenSLES因爲我沒有找到在Android 4這個問題? x)支持單個引擎,但我根本不知道另一個引擎是從哪裏來的。

OpenSLES中是否有任何接口來檢查是否已有活動引擎?

在此先感謝您的任何提示!

回答

0

這是令人難以置信的,以及大多數時候應用程序的工作原理,但偶爾我發現這個錯誤會導致一個不可用的openSL引擎,但我只在Android 2.3上注意到這一點。

SL_RESULT_RESOURCE_ERROR可能由多種原因引發,例如pthread錯誤,內存不足等。但是,這些將返回適當的錯誤代碼。

它更可能歸結爲應用程序體系結構,是否有多位代碼創建引擎對象或者只有一個入口點?您實際上無法從OpenSL中檢索活動引擎對象,因此您必須將所有指針/引用存儲到傳遞給slCreateEngine方法的引擎對象。在運行create engine方法之前檢查它們的狀態(和關閉引擎)可能是一個好主意,因爲它可能會多次觸發(例如,您的Activity的onCreate/onPause/onResume方法可能通過觸發新創作)。

+0

我通過對引擎對象使用靜態變量解決了這個問題,因此只要有一個活動引擎,就不會創建新引擎。 – jenny

相關問題