在安卓设备上播放Wowza的.mp3 RTSP流

5
我希望使用默认的MediaPlayer库在安卓上播放wowza.mp3流。但是我已经尝试使用安卓自带的API演示来播放该流,但并未成功。虽然安卓文档表示可以播放。

http://developer.android.com/guide/appendix/media-formats.html

我查阅了Wowza文档,发现任何Android设备都无法播放.mp3 rtsp流。http://www.wowza.com/forums/content.php?62 我感到困惑的是,一个文档说可以播放,而另一个文档说不行?请问有人能告诉我真正的问题是什么吗?

1
你误解了Android文档 - 引用对于通过HTTP或RTSP流式传输的视频内容,这就是全部,没有其他方式!此外,以下网络协议支持音频和视频播放:这并不意味着支持使用RTSP流式传输MP3。Wowza上的文档是正确的!似乎Android文档尚未更新以澄清这一点。无法做到! - t0mm13b
@t0mm13b 嗯,谢谢。因此,底线是我们无法通过rtsp播放.mp3文件,但只要编码符合Android提供的视频编码要求,我们就可以通过rtsp播放.mp4(视频)?也就是说,除非按照要求进行编码,否则普通的mp4文件无法在rtsp上播放。 - Ahmad Ali Nasir
@Ahmad Ali Nasir,你的问题解决了吗?你是如何在安卓上实现Wowza .mp3 RTSP流的呢? - Pallavi
@Pallavi 我找到了一个解决方法。基本上,Wowza文档指出Android不允许通过rtsp播放mp3。所以我将音频编码为不同的格式,如aac等,然后它就可以工作了。我无法记住确切的媒体格式,因为已经过去3年了。但我猜现在你可以通过rtsp流式传输mp3了。如果你能分享你当前的工作细节,我就能指导你朝着正确的方向前进。 - Ahmad Ali Nasir
@AhmadAliNasir .. 谢谢.. 我会尝试这个,因为wowza服务器在客户端那边,我无法访问它.. 所以我正在使用虚拟账户进行工作。 - Pallavi
@Pallavi 不用担心。随时联系我。 - Ahmad Ali Nasir
2个回答

3

感谢您的出色回答。我在我的Android应用程序中播放mp3音频时遇到了问题。现在,如果我理解正确,Wowza可以将rtsp转换为http流。那么,在我的应用程序中,我该怎么做才能使用本机Android媒体播放器播放声音呢? 只需将协议从rtsp:// ...我的网址...切换到http:// ...我的网址...即可。我尝试过了,但它不起作用..(一直缓冲) - Sold Out
您需要相应地配置Wowza参数,不幸的是我最近没有这样做,暂时无法提供具体信息。 - tazzix
Wowza为Android提供的唯一模型是RTSP,没有任何HTTP服务可用。 - Albert Chen

0

我在开发Android媒体播放器时遇到了相同的问题。 我使用iMove从.mp4文件中分离音频。这非常容易做到,双击视频并选择分离音频,然后删除音轨。

我将视频轨道和音频轨道分别传输,对于视频我使用rtsp,对于音频我使用apache web服务器,Android可以像读取本地文件一样静态读取音频。

顺便说一下,我尝试使用Wowza提供的所有协议来流式传输.mp3,但都没有成功。

我的代码如下:

public void PlayVideo() {
        MediaController vidControl = new MediaController(this);
        vidControl.setAnchorView(VideoPlayer);
        VideoPlayer.setMediaController(vidControl);


        VideoPlayer.setVideoPath("rtsp://137.110.90.123:1935/vod/SamNoSound.mp4");


        VideoPlayer.start();

    }

public void PlayAudio() {
        //play audio
        String url = "http://137.110.90.123/~chenyu/sample.mp3"; // your URL here

        try {
            AudioPlayer.setDataSource(url);
            AudioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            AudioPlayer.prepare();
            AudioPlayer.start();
        } catch (IOException e) {
            e.printStackTrace();
        }  

如果你真的想强调流媒体,我建议使用VLC,我的流媒体.mp3的命令是:

只流式传输音频

vlc /Users/chenyu/Sites/XXXX.mp3 -I http --sout "#transcode{ab=128,samplerate=44100,channels=2,acodec=mpga,vcodec=none}:gather:rtp{mp4a-latm,sdp=rtsp://137.110.92.231:5554/stream.sdp}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接