web-dev-qa-db-fra.com

Jouez en streaming RTSP dans une application Android

J'essaie de développer une application basée sur Android, qui peut lire des vidéos à partir d'un flux en direct. Ce flux en direct est produit à l'aide de Wowza Media Server .

L'URL est:

rtsp://tv.hindiworldtv.com:1935/live/getpun

J'ai essayé le code suivant dans ecliplse:

package com.kalloh.wpa;

import Android.app.Activity;
import Android.content.pm.ActivityInfo;
import Android.net.Uri;
import Android.os.Bundle;
import Android.view.Window;
import Android.widget.MediaController;
import Android.widget.VideoView;


public class a extends Activity {

    VideoView videoView;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        //Create a VideoView widget in the layout file
        //use setContentView method to set content of the activity to the layout file which contains videoView
        this.setContentView(R.layout.videoplayer);

        videoView = (VideoView)this.findViewById(R.id.videoView);

        //add controls to a MediaPlayer like play, pause.
        MediaController mc = new MediaController(this);
        videoView.setMediaController(mc);

        //Set the path of Video or URI
        videoView.setVideoURI(Uri.parse("rtsp://tv.hindiworldtv.com:1935/live/getpnj"));
        //

        //Set the focus
        videoView.requestFocus();
    }
}

Au début, cela ne fonctionnait pas.

Maintenant, il a commencé à fonctionner, mais il s'arrête après 20 à 30 secondes. Comment puis-je résoudre ce problème?

36
SJSSoft

J'ai trouvé la solution. La transmission doit être dans le paramètre préféré par Android. Pour plus de détails, voir Formats multimédias pris en charge.

0
SJSSoft

Utiliser VideoView est une bonne solution, mais nous pouvons également utiliser le native player pour jouer à RTSP. Ceci est un exemple:

if (movieurl.startsWith("rtsp://")) {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(movieurl));
    startActivity(intent);
}

Gardez à l'esprit que vos médias doivent être créés avec Formats multimédias pris en charge par Android ( codecs ).

13
Jorgesys

J'ai également eu le même problème dans ICS 4.x. En outre, vous pouvez vérifier si votre flux URL fonctionne correctement ou pas.

Vérifiez également votre code avec cet exemple d'URL .

9
Murali

J'ai eu le même problème avec le Galaxy Note N7000 (ICS 4.0.3) et VLC 2.0.2 - la vidéo meurt après 60 secondes. Mais quand je me tourne vers le lecteur multimédia VLC 1.1.4, tout fonctionne bien!

Parfois, cela dépend du serveur multimédia. Vous pouvez essayer RTSP à partir de YouTube (allez sur m.youtube.com, puis cliquez avec le bouton droit sur une vidéo -> copier le lien d'emplacement -> c'est le lien RTSP dont vous avez besoin).

0
hungson175