【问题标题】:Failed to create MediaPlayer创建媒体播放器失败
【发布时间】:2014-01-12 13:04:48
【问题描述】:

我已经下载了 - Experiments in Streaming Content in Java ME by Vikram Goyal

但是在运行 Darwin Stream Server 之后尝试使用模拟器运行应用程序时 我收到以下错误 -

Midlet->startApp
StreamingDataSource->StreamingDataSource
StreamingDataSource->getContentType
StreamingDataSource->getLocator (locator = rtsp://127.0.0.1/sample_100kbit.avi)
javax.microedition.media.MediaException: Player cannot be created for video/avi
    at javax.microedition.media.Manager.createPlayer(), bci=135
 - com.iprs.test.Midlet.startApp(Midlet.java:14)
    at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
    at com.sun.midp.midlet.MIDletPeer.startApp(), bci=5
    at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=261
    at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
    at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
    at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=144
    at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
Midlet->destroyApp

这是 StartApp 方法 -

    public void startApp() {
    try {
        System.out.println("Midlet->startApp");
        // create Player instance, realize it and then try to start it
        Player player = Manager.createPlayer(new StreamingDataSource("rtsp://127.0.0.1/sample_100kbit.avi")); //(new StreamingDataSource("rtsp://localhost:554/tuner1.wav")); //sample.mp3")); //sample_100kbit.mp4"));
            player.realize();
            player.start();
    } catch(Exception e) {
            e.printStackTrace();
    }
}

我尝试了一些媒体类型,但我得到了错误。 如何解决? 谢谢, 艾尔。

【问题讨论】:

    标签: java-me media-player rtsp-client


    【解决方案1】:

    IP 地址 127.0.0.1 始终指向您正在使用的设备。因此,当在 MIDlet 中使用时,它指向运行 MIDlet 的手机。换句话说,您正在尝试将文件从手机流式传输到手机。

    这当然行不通,因为您的手机上没有正在运行的网络服务器。

    要使其正常工作,您应该找出服务器的正确 IP 地址。

    如果您的手机通过 WiFi 连接,您很可能使用本地 IP,例如 10.0.0.x 或 192.168.0.x

    如果您的手机是通过 GPRS 或 3G 连接的,您需要使用 www.whatismyip.com 等服务确定您的台式电脑在 Internet 上的 IP 之后,您必须确保您的服务器是可访问的。换句话说,请确保您的路由器允许 RTSP 协议使用的特定端口上的流量,并将该端口上的流量引导到您的服务器。

    要一步一步地进行,最好在谷歌上搜索现有的 RTSP 流,然后先尝试一下。这样你就会知道你的 JavaME 代码工作正常。

    据我所知,使用 JavaME(至少在较新的手机上)播放 RTSP 流是相当简单的。应该与标准播放器一起运行,无需任何额外的类。

    参见:J2ME/StreamingMedia.htm">http://www.java2s.com/Tutorial/Java/0430_J2ME/StreamingMedia.htm

    您还应该能够测试某个 RTSP 提要是否正常工作,只需在手机浏览器中输入 URL 即可。然后它应该启动手机的默认媒体播放器并播放流。

    【讨论】:

    • 您好,感谢您的回答。我正在使用模拟器运行我的 midlet。
    • 您是否检查了计算机上的媒体播放器是否可以从那里播放流?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2019-05-16
    • 2014-04-21
    • 1970-01-01
    相关资源
    最近更新 更多