0

我已经下载了 Vikram Goyal 的代码 - Experiments in Streaming Content in Java ME

但是,当尝试使用模拟器运行应用程序时,在运行 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();
    }
}

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

4

1 回答 1

2

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 即可。然后它应该启动手机的默认媒体播放器并播放流。

于 2014-01-12T15:00:24.540 回答