La plate-forme Android fournit des bibliothèques que vous pouvez utiliser pour diffuser des fichiers multimédias, tels que des vidéos distantes, et les présenter pour les lire dans vos applications. Dans ce tutoriel, nous allons diffuser un fichier vidéo en l’affichant à l’aide du VideoView
composant avec un MediaController
objet permettant à l'utilisateur de contrôler la lecture.
Nous allons également passer brièvement en revue le processus de présentation de la vidéo à l'aide du logiciel Lecteur multimédia
classe. Si vous avez terminé la série sur la création d’un lecteur de musique pour Android, vous pouvez utiliser ce que vous avez appris dans ce didacticiel pour l’améliorer. Vous devriez pouvoir suivre ce didacticiel si vous avez déjà développé au moins quelques applications Android..
Si vous souhaitez une solution prête à l'emploi, consultez YoVideo, un modèle d'application Android permettant de créer un magnifique lecteur vidéo mobile pour smartphone Android..
Les utilisateurs peuvent voir des vidéos, les suivre et les partager avec leurs amis sur Facebook. L'utilisation de ce modèle d'application vous fera économiser de l'argent et du temps pour la création d'une application de partage de vidéos..
YoVideo sur le marché EnvatoOu vous pouvez engager un développeur Android pour créer une solution personnalisée pour vous. Sinon, lisez la suite pour savoir comment le faire vous-même..
Vous pouvez utiliser le code de ce didacticiel pour améliorer une application existante sur laquelle vous travaillez ou vous pouvez créer une nouvelle application maintenant dans Eclipse ou Android Studio. Créez un nouveau projet Android, nommez-le de votre choix, configurez les détails, puis donnez-lui un nom initial Activité
classe et mise en page.
Commençons par configurer le manifeste du projet pour la diffusion multimédia en continu. Ouvrez le fichier manifeste de votre projet et passez en édition XML dans votre IDE. Pour le streaming multimédia, vous avez besoin d’un accès Internet. Vous devez donc ajouter l’autorisation suivante dans le manifeste
élément:
VideoView
La plate-forme Android fournit la VideoView
classe dans laquelle vous pouvez lire des fichiers vidéo. Ajoutons-en un au fichier de disposition principal:
Modifiez la mise en page parent pour l'adapter à votre propre application si nécessaire. Nous donnons le VideoView
par exemple un identifiant
attribut afin que nous puissions y faire référence plus tard. Vous devrez peut-être ajuster les autres propriétés de mise en page pour votre propre conception..
Maintenant, récupérons une référence à la VideoView
exemple en code. Ouvrez la fenêtre principale de votre application Activité
classe et ajoutez les importations supplémentaires suivantes:
importer android.net.Uri; importer android.widget.MediaController; importer android.widget.VideoView;
Votre Activité
la classe devrait déjà contenir le onCreate
méthode dans laquelle la vue de contenu est définie:
@Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main);
Après le setContentView
ligne, obtenons une référence à la VideoView
exemple comme suit, en utilisant le identifiant
nous définissons dans la mise en page XML:
VideoView vidView = (VideoView) findViewById (R.id.myVideo);
Maintenant, nous pouvons diffuser un fichier vidéo sur l'application. Préparez l'URI du noeud final comme suit:
String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4"; Uri vidUri = Uri.parse (vidAddress);
Vous devrez bien sûr utiliser l'adresse distante pour le fichier vidéo que vous souhaitez diffuser. L'exemple ici est un fichier vidéo du domaine public hébergé sur Internet Archive. Nous analysons la chaîne d’adresse en tant qu’URI afin de pouvoir la transmettre au VideoView
objet:
vidView.setVideoURI (vidUri);
Maintenant, vous pouvez simplement commencer la lecture:
vidView.start ();
Le système d'exploitation Android prend en charge une gamme de formats vidéo et multimédia, chaque périphérique prenant souvent en charge d'autres formats..
Comme vous pouvez le constater dans le Guide du développeur, les formats de fichiers vidéo pris en charge incluent les formats 3GP, MP4, WEBM et MKV, en fonction du format utilisé et du niveau de plate-forme installé par l'utilisateur..
Les formats de fichiers audio auxquels vous pouvez vous attendre sont compatibles avec les formats MP3, MID, OGG et WAV. Vous pouvez diffuser du contenu multimédia sur Android via RTSP, HTTP et HTTPS (à partir d'Android 3.1).
Nous avons implémenté la lecture vidéo, mais l’utilisateur s’attend à le maîtriser et s’y est habitué. Encore une fois, la plate-forme Android fournit des ressources pour gérer cela en utilisant une interaction familière via le MediaController
classe.
Dans ton Activité
la classe onCreate
méthode, avant la ligne dans laquelle vous appelez début
sur le VideoView
, créer une instance de la classe:
MediaController vidControl = new MediaController (this);
Ensuite, configurez-le pour utiliser le VideoView
exemple comme son ancre:
vidControl.setAnchorView (vidView);
Et enfin, définissez-le comme contrôleur de média pour le VideoView
objet:
vidView.setMediaController (vidControl);
Lorsque vous exécutez l'application maintenant, l'utilisateur devrait pouvoir contrôler la lecture de la vidéo en continu, y compris les boutons d'avance et de retour rapides, un bouton de lecture / pause et un contrôle de barre de recherche.
Le contrôle de barre de recherche est accompagné de la longueur du fichier multimédia à droite et de la position de lecture actuelle à gauche. En plus de pouvoir appuyer le long de la barre de recherche pour accéder à une position dans le fichier, l’état de la diffusion en continu est indiqué en utilisant le même type d’affichage auquel l’utilisateur sera habitué depuis des sites et des applications telles que YouTube..
Comme vous le verrez lors de l'exécution de l'application, le comportement par défaut est que les commandes disparaissent après quelques instants et réapparaissent lorsque l'utilisateur touche l'écran. Vous pouvez configurer le comportement du MediaController
objet de différentes manières. Consultez la série sur la création d'une application de lecteur de musique pour Android pour savoir comment procéder. Vous pouvez également améliorer la lecture multimédia en implémentant différents écouteurs pour configurer le comportement de votre application..
Lecteur multimédia
Avant de terminer, passons en revue une approche alternative pour le streaming vidéo en utilisant le Lecteur multimédia
classe, puisque nous l’avons utilisé dans la série sur la création d’un lecteur de musique. Vous pouvez diffuser du contenu multimédia, y compris vidéo, vers un Lecteur multimédia
objet en utilisant une vue de surface. Par exemple, vous pouvez utiliser la disposition suivante:
Nous nous référerons à la SurfaceView
dans la mise en œuvre de la Activité
classe.
Dans ton Activité
classe, ajoutez les interfaces suivantes:
Classe publique MainActivity, Activity implémente SurfaceHolder.Callback, OnPreparedListener
Votre IDE devrait vous inviter à ajouter ces méthodes non implémentées:
@Override public vide surfaceChanged (SurfaceHolder arg0, int arg1, int arg2, int arg3) // TODO Stub de méthode générée automatiquement @Override public void surfaceCreated (SurfaceHolder arg0) // setup @Override public void surfaceDestroyed (SurfaceHolder arg0 ) // TODO Stub de méthode généré automatiquement @Override public void onPrepared (MediaPlayer mp) // démarrer la lecture
Nous allons ajouter à la surfaceCréée
et onPréparé
les méthodes.
Pour implémenter la lecture, ajoutez les variables d'instance suivantes à la classe:
MediaPlayer privé mediaPlayer; SurfaceHolder privé vidHolder; SurfaceSpace privé vidSurface; String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4";
dans le Activité
de onCreate
méthode, vous pouvez alors commencer à instancier ces variables en utilisant le SurfaceView
objet que vous avez ajouté à la mise en page:
vidSurface = (SurfaceView) findViewById (R.id.surfView); vidHolder = vidSurface.getHolder (); vidHolder.addCallback (this);
dans le surfaceCréée
méthode, configurez vos ressources de lecture multimédia:
try mediaPlayer = new MediaPlayer (); mediaPlayer.setDisplay (vidHolder); mediaPlayer.setDataSource (vidAddress); mediaPlayer.prepare (); mediaPlayer.setOnPreparedListener (this); mediaPlayer.setAudioStreamType (AudioManager.STREAM_MUSIC); catch (Exception e) e.printStackTrace ();
Enfin, dans le onPréparé
méthode, démarrer la lecture:
mediaPlayer.start ();
Votre vidéo devrait maintenant être lue dans Lecteur multimédia
par exemple lorsque vous exécutez l'application.
Dans ce tutoriel, nous avons présenté les bases de la vidéo en streaming sur Android à l'aide de la VideoView
et Lecteur multimédia
Des classes. Vous pouvez ajouter de nombreuses améliorations au code que nous avons implémenté ici, par exemple, en créant un support vidéo ou multimédia en continu dans l'application de lecteur de musique que nous avons créée. Vous pouvez également consulter les ressources associées à Android, telles que l'API du lecteur Android de YouTube..