在Motorola Symbol MC3090上发出哔哔声

时间:2012-10-31 10:04:07

标签: java-me lwuit symbols beep java-wireless-toolkit

我正在使用JAVA ME 1.4和WTK以及LWUIT,并希望在PhoneME中运行的Java应用程序中发出一声哔哔声。

我在谷歌上发现了几种方法,但它们都没有用。

我的最后一次尝试是使用Display.getInstance().playBuiltinSound(Display.SOUND_TYPE_ERROR),但没有成功。

另一个是:AlertType.WARNING.playSound(Display.getDisplay(midlet));也没有工作

这一个:Playing Audio with J2ME;没有成功

有人可以帮忙找到一种在JAVA ME上发出哔哔声的通用方法吗?

1 个答案:

答案 0 :(得分: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()和prefetch(),而这些确切的调用会搞砸其他设备上的回放。因此,要在大多数可能的设备上进行播放,只需输入一些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) {}

使用这种方法可以在大多数设备上为您提供有效的声音。

在线查找哔声应该不是问题。