1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

RTSP Stream API-Beispiele

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kelthur, 21.11.2011.

  1. Kelthur, 21.11.2011 #1
    Kelthur

    Kelthur Threadstarter Neuer Benutzer

    Beiträge:
    22
    Erhaltene Danke:
    1
    Registriert seit:
    09.03.2011
    Hallo,

    ich habe das Beispiel MediaPlayerDemo Video aus dem API-Demos 2.3.3 herrausgegriffen um ein RTSP Stream zum laufen zu bringen, leider bringt er mir immer wieder eine Fehlermeldung... der Code schaut so aus:


    ----------------------------------------------------------------------
    path = "rtsp://192.168.103.41/";

    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);


    public void onBufferingUpdate(MediaPlayer arg0, int percent) {
    Log.d(TAG, "onBufferingUpdate percent:" + percent);

    }

    public void onCompletion(MediaPlayer arg0) {
    Log.d(TAG, "onCompletion called");
    }

    public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
    Log.v(TAG, "onVideoSizeChanged called");
    if (width == 0 || height == 0) {
    Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")");
    return;
    }
    mIsVideoSizeKnown = true;
    mVideoWidth = width;
    mVideoHeight = height;
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) {
    startVideoPlayback();
    }
    }

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

    public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) {
    Log.d(TAG, "surfaceChanged called");

    }

    public void surfaceDestroyed(SurfaceHolder surfaceholder) {
    Log.d(TAG, "surfaceDestroyed called");
    }


    public void surfaceCreated(SurfaceHolder holder) {
    Log.d(TAG, "surfaceCreated called");
    playVideo(extras.getInt(MEDIA));


    }

    @Override
    protected void onPause() {
    super.onPause();
    releaseMediaPlayer();
    doCleanUp();
    }

    @Override
    protected void onDestroy() {
    super.onDestroy();
    releaseMediaPlayer();
    doCleanUp();
    }

    private void releaseMediaPlayer() {
    if (mMediaPlayer != null) {
    mMediaPlayer.release();
    mMediaPlayer = null;
    }
    }

    private void doCleanUp() {
    mVideoWidth = 0;
    mVideoHeight = 0;
    mIsVideoReadyToBePlayed = false;
    mIsVideoSizeKnown = false;
    }

    private void startVideoPlayback() {
    Log.v(TAG, "startVideoPlayback");
    holder.setFixedSize(mVideoWidth, mVideoHeight);
    mMediaPlayer.start();
    }

    ----------------------------------------------------------------------

    bis auf den path wurde nichts geändert... Logcat:

    [​IMG]

    mit einer Portangabe funktioniert es auch nicht "rtsp://192.168.103.41:5544/" mit externen RTSP Playern funktioniert es... es liegt also auch nicht an der firewall. Ich wäre für jeden Tipp dankbar


    *edit* PROBLEM GELÖST lag an den Codec... von TS auf h264 geändert und es ging
     
    Zuletzt bearbeitet: 21.11.2011

Diese Seite empfehlen