2012-10-31 162 views
2

我正在使用JAVA ME 1.4和WTK和LWUIT,並希望在PhoneME中運行的Java應用程序中發出嘟嘟聲。摩托羅拉Symbol MC3090

我在谷歌上發現了幾種方法,但都沒有工作。

我最後的嘗試是使用Display.getInstance().playBuiltinSound(Display.SOUND_TYPE_ERROR)但沒有成功。

另一個是:AlertType.WARNING.playSound(Display.getDisplay(midlet));也不起作用

而這一個:Playing Audio with J2ME;沒有成功

有人可以幫助找到一種通用的方式來發揮在JAVA我嘟嘟聲?

回答

0

如果是我,我會使用Player對象來播放AMR文件或MIDI文件。

AMR是JavaME中支持最廣泛的流式音頻格式。您可以使用各種轉換器輕鬆將WAV文件轉換爲AMR。

使用Player對象非常簡單。這裏是一個演奏MIDI的例子。首先,創建Player對象:

Player myPlayer = Manager.createPlayer(getClass().getResourceAsStream("music.mid"), "audio/midi"); // For AMR use audio/amr 

在這之後你可以只是調用myPlayer.start(),但這裏的麻煩:有些設備需要您首先調用REALIZE()和預取(),而這些確切的通話將擾亂其他設備上的回放。因此,要獲得播放上最可能的設備工作,你只扔幾try/catch塊:

try { 
    myPlayer.realize(); 
} catch (Exception e) {} // Didn't work? Oh well, never mind. 

try { 
    myPlayer.prefetch();  
} catch (Exception e) {} // Again, we don't care if it didn't work. 

try { 
    myPlayer.start(); 
} catch (Exception e) {} 

使用方法應該給你最有可能設備正常工作的聲音。

在網上找到使用嘟嘟聲不應該是一個問題。

+0

感謝您的回答。但是,該設備沒有聲卡,所以我需要主板嘟嘟聲。我已經通過使用更強大的JVM(phoneMe Advanced)和JNI低級別調用來解決問題。 –