我在开发 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}"