0
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
4

1 回答 1

4

如果您查看BlackBerry API 文档,您会看到createPlayer()您使用的版本:

MediaException - 如果无法为给定定位器创建 Player,则抛出该异常。

它还说:

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
    }
于 2012-08-07T09:17:12.463 回答