2012-10-31 122 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低级别调用来解决问题。 –