在Android上播放rtsp流

在Android上播放rtsp流,android,video-streaming,audio-streaming,rtsp,Android,Video Streaming,Audio Streaming,Rtsp,我需要播放视频和音频的android rtsp流。但不管我做什么,他们都不会开始。用于视频的rstp流为.mp4格式,用于音频的rstp流为.mp3格式。在VLC中播放时,该流工作正常,显示的分辨率为320X240。但这里只给出了我在底部发布的错误。另外,请告诉如何流式播放mp3,因为android sdk中的API演示中没有教程。该视频与Vitamio库配合使用效果良好。但我不知道如何定制它 mMediaPlayer = new MediaPlayer(); mMediaPla

我需要播放视频和音频的android rtsp流。但不管我做什么,他们都不会开始。用于视频的rstp流为.mp4格式,用于音频的rstp流为.mp3格式。在VLC中播放时,该流工作正常,显示的分辨率为320X240。但这里只给出了我在底部发布的错误。另外,请告诉如何流式播放mp3,因为android sdk中的API演示中没有教程。该视频与Vitamio库配合使用效果良好。但我不知道如何定制它

mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setDataSource(path);
        mMediaPlayer.setDisplay(holder);
        mMediaPlayer.prepare();
        mMediaPlayer.setOnBufferingUpdateListener(this);
        mMediaPlayer.setOnCompletionListener(this);
        mMediaPlayer.setOnPreparedListener(this);
        mMediaPlayer.setOnVideoSizeChangedListener(this);
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//onPrepared(...) Function
public void onPrepared(MediaPlayer mediaplayer) {
    Log.d(TAG, "onPrepared called");
    mIsVideoReadyToBePlayed = true;
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
        startVideoPlayback();
    }
} 

//startVideoPlayback() Function 
    private void startVideoPlayback() {
    Log.v(TAG, "startVideoPlayback");
    holder.setFixedSize(mVideoWidth, mVideoHeight);
    mMediaPlayer.start();
}
错误: 01-05 21:10:59.640:错误/MediaPlayerDemo(15989):无效的视频宽度(0)或高度(0)

我建议你这样做


在onPrepared方法中,将
startVideoPlayback()
替换为
mediaPlayer.start()
将onVideoSizeChanged(…)函数更改为:-

public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
        Log.d("onVideoSizeChanged: (%dx%d)", width, height);
        mVideoWidth = mp.getVideoWidth();
        mVideoHeight = mp.getVideoHeight();
        mVideoAspectRatio = mp.getVideoAspectRatio();
        if (mVideoWidth != 0 && mVideoHeight != 0)
            setVideoLayout(mVideoLayout, mAspectRatio);
    }

这是如何实现的?而
mvideowith
mvideowith
在哪里设置?此外,logcat变钝,宽度或高度为0!ipinak OnBufferingUpdateListener、OnCompletionListener、OnPreparedListener、OnVideoSizeChangedListener、SurfaceHolder.Callbackt0mm13b这是不正确的,这就是视频无法播放的原因。我只是在使用android sdk BTW提供的API演示。这个API和其他很多API都不是世界上最好的。另外,不要使用模拟器。我几乎不用模拟器。目前我正在测试银河系S。银河系y、银河系S2和银河系Note不起作用01-05 21:47:37.000:错误/MediaPlayerDemo(18711):无效的视频宽度(0)或高度(0)01-05 21:47:37.906:错误/MediaPlayer(18711):错误(1,-2147483648)01-05 21:47:37.910:错误/MediaPlayer(18711):错误(1,-2147483648)能否更改为MediaPlayer.prepareAsync(); 而不是mediaPlayer.prepare();不过,我不确定这是否真的重要。你为mediaPlayer设置了显示吗<代码>mediaPlayer.setDisplay(支架)是的,我已经做了。。除了你告诉我的部分,我没有修改代码。你能上传整个文件吗,因为我已经没有样本了。
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
        Log.d("onVideoSizeChanged: (%dx%d)", width, height);
        mVideoWidth = mp.getVideoWidth();
        mVideoHeight = mp.getVideoHeight();
        mVideoAspectRatio = mp.getVideoAspectRatio();
        if (mVideoWidth != 0 && mVideoHeight != 0)
            setVideoLayout(mVideoLayout, mAspectRatio);
    }