J'ai donc une caméra IP qui émet un flux vidéo auquel je peux me connecter via le protocole rtsp. Je veux l'afficher dans mon application android, donc j'ai mis en place une vidéo en utilisant le code suivant;Déclenchement et déconnexion de flux vidéo avec vidéo en utilisant le flux de caméra IP
VideoView vv = (VideoView)this.findViewById(R.id.videoView);
Uri uri = Uri.parse("rtsp://username:[email protected]:554/1/stream3");
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
Je mets cela dans le onCreate() de la classe principale d'activité, de sorte que lorsque les charges d'applications jusqu'à il se connecte automatiquement et commence le streaming. Mon expérience avec ceci est que cela fonctionne - mais finit par devenir saccadé et ou s'arrête simplement de manière aléatoire et ne semble jamais revenir à courir encore. Je dois fermer l'application et l'effacer de la mémoire et la redémarrer pour la récupérer - mais ensuite elle perd la connexion peu de temps après, ce qui signifie qu'elle est pratiquement inutile. J'ai également trouvé qu'il semblait être un peu lent lorsque l'on touche à l'écran des objets comme des menus ou des boutons, mais cela pourrait être une coïncidence - je ne peux pas dire à coup sûr. La chose est le flux est parfait à partir d'un PC sur le même réseau via VLC en utilisant la même URL. Alors qu'est-ce que je fais mal, et y a-t-il une meilleure méthode de gestion de la vidéo en streaming? En fin de compte, j'ai voulu coupler la vidéo avec du texte et des boutons superposés, et éventuellement prendre des captures d'écran lorsque cela était nécessaire. En ce moment je suis chanceux si j'obtiens la vidéo pendant quelques secondes avant qu'il coupe ...
Quelques commentaires additionnels;
J'ai réussi à l'utiliser pendant une période plus longue - ce n'est donc pas toujours une mauvaise chose qui rend les choses difficiles à diagnostiquer. Mais quand ça s'arrête, ça s'arrête. Videoview essaie-t-il activement de se reconnecter s'il a perdu une connexion? Y a-t-il une façon de le démontrer avec un indicateur de progression peut-être - donc ça n'a pas l'air de ne rien faire?