首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建MediaPlayer失败

创建MediaPlayer失败
EN

Stack Overflow用户
提问于 2014-01-12 21:04:48
回答 1查看 194关注 0票数 0

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

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

代码语言:javascript
复制
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方法-

代码语言:javascript
复制
    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();
    }
}

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

EN

回答 1

Stack Overflow用户

发布于 2014-01-12 23:00:25

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

这当然不起作用,因为你的手机上没有正在运行的网络服务器。

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

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

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

为了一步一步来,谷歌搜索现有的RTSP流,并首先尝试这些流,可能是一个好主意。这样,您就会知道您的JavaME代码运行良好。

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21074940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档