0

両方のビデオ オーディオに対して Android rtsp ストリームを再生する必要があります。でも、何をしても始まらない。ビデオの rstp ストリームは .mp4 形式で、オーディオの場合は .mp3 です。ストリームは VLC で再生すると正常に動作し、320X240 の解像度を示します。しかし、ここでは、一番下に投稿したエラーが表示されます。また、android-sdk の API デモにチュートリアルがないため、mp3 をストリーミングする方法を教えてください。ビデオは、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)

4

2 に答える 2

1

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);
    }
于 2013-01-07T04:47:20.317 に答える
0
public void onVideoSizeChanged(MediaPlayer mp, int width, int height)
{
    if(width == 0 || height == 0) {
        return;
    }

    this.width = width;
    this.height = height;
    aspectRatio = width/height;

    startVideoPlayback();
}

これを行うことをお勧めします。

onPrepared メソッド内で次のように置き換えstartVideoPlayback()ますmediaPlayer.start()

于 2013-01-05T16:35:49.293 に答える