try {
Player p = javax.microedition.media.Manager.createPlayer("abc.mp3");
p.realize();
VolumeControl volume = (VolumeControl)p.getControl("VolumeControl");
volume.setLevel(30);
p.prefetch();
p.start();
} catch(MediaException me) {
Dialog.alert(me.toString());
} catch(IOException ioe) {
Dialog.alert(ioe.toString());
}
我使用上面的代码在黑莓中播放音频。但它会产生异常错误,如下所述。
javax.microedition.media.MediaException
答案 0 :(得分:4)
如果您查看BlackBerry API docs,就会看到您使用的createPlayer()
版本:
MediaException - 如果无法为给定定位器创建播放器,则抛出该异常。
它还说:
locator - URI语法中的定位器字符串,用于描述媒体内容。
您的定位器("abc.mp3"
)看起来不像URI语法。您可以尝试将其更改为"file:///SDCard/some-folder/abc.mp3"
。
或者,如果mp3文件是应用程序资源,我通常使用此代码:
try {
java.io.InputStream is = getClass().getResourceAsStream("/sounds/abc.mp3");
javax.microedition.media.Player p =
javax.microedition.media.Manager.createPlayer(is, "audio/mpeg");
p.realize();
// get volume control for player and set volume to max
VolumeControl vc = (VolumeControl) p.getControl("VolumeControl");
if (vc != null) {
vc.setLevel(100);
}
// the player can start with the smallest latency
p.prefetch();
// non-blocking start
p.start();
} catch (javax.microedition.media.MediaException me) {
// do something?
} catch (java.io.IOException ioe) {
// do something?
} catch (java.lang.NullPointerException npe) {
// this happened on Tours without mp3 bugfix
}