web-dev-qa-db-fra.com

Utilisation de VideoView pour la diffusion en continu ou le téléchargement progressif de vidéos

Je suis confus quant à la façon dont VideoView peut être utilisé pour lire des vidéos: à partir d'un fichier local, en téléchargement progressif et en streaming.

Cet exemple fonctionne pour moi (sur 1.5 et 2.0 au moins) en téléchargeant le fichier et en le jouant localement.

Mais est-il nécessaire de télécharger la vidéo avant la lecture: est-il possible de lire la vidéo en téléchargement progressif, ou en streaming, simplement en utilisant setVideoPath ou setVideoURI, comme dans VideoViewDemo dans les exemples d'API?

Le code VideoViewDemo suggère d'utiliser setVideoURI pour le streaming, mais je ne sais pas quel type d'URL je dois utiliser. Quelqu'un a-t-il un exemple d'URL pour une vidéo qui peut être diffusée vers l'émulateur Android en utilisant le code VideoViewDemo?

Le téléchargement progressif peut-il être utilisé avec VideoViewDemo? J'obtiens un message `` Désolé, cette vidéo ne peut pas être lue '' en utilisant setVideoPath avec des URL qui fonctionnent correctement avec l'exemple de blog lié ci-dessus. (Est-ce un problème dans l'émulateur? J'ai essayé 1.5 et 2.0.)

J'ai trouvé beaucoup d'exemples et de documentation en ligne mais, jusqu'à présent, rien ne répond vraiment à cette question.

41
Sam Dutton

est-il possible de lire des vidéos en téléchargement progressif, ou en streaming, simplement en utilisant setVideoPath ou setVideoURI, comme dans VideoViewDemo dans les exemples d'API?

Cela devrait. Cela fonctionne certainement avec MediaPlayer, et VideoView est juste un wrapper de ~ 200 lignes autour de MediaPlayer et un SurfaceView.

Le code VideoViewDemo suggère d'utiliser setVideoURI pour le streaming, mais je ne sais pas quel type d'URL je dois utiliser.

http:// et rtsp:// peut fonctionner si la vidéo a été encodée correctement.

Quelqu'un a-t-il un exemple d'URL pour une vidéo qui peut être diffusée vers l'émulateur Android en utilisant le code VideoViewDemo?

Cette vidéo fonctionne avec MediaPlayer, sauf sur le Nexus One.

[~ # ~] modifier [~ # ~] : En fait, ce lien fonctionne également avec le Nexus One.

19
CommonsWare

Cela fonctionne pour les cas simples, mais uniquement lorsqu'il n'est pas nécessaire d'effectuer des préparations personnalisées pour les demandes d'obtention d'un flux.

Ce tutoriel montre un exemple d'émulation de streaming manuelle pour un audio, mais il peut être un peu remanié pour lire la vidéo:

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

(assurez-vous d'utiliser FileDescriptor lors de la configuration de dataSource, l'API a été légèrement modifiée à partir de ces moments).

2
shaman.sir