En utilisant VideoView pour le streaming ou la vidéo progressive téléchargement
-
20-09-2019 - |
Question
Je suis confus au sujet de la façon dont VideoView peut être utilisé pour lire la vidéo:. À partir d'un fichier local, comme le téléchargement progressif et le streaming
cet exemple fonctionne pour moi (sur 1,5 et 2,0 au moins) en téléchargeant le fichier et jouer localement.
Mais est-il nécessaire de télécharger la vidéo avant de jouer: est-il possible de lire la vidéo en téléchargement progressif ou en streaming, en utilisant simplement setVideoPath ou setVideoURI, comme dans VideoViewDemo dans les échantillons API
Le code VideoViewDemo suggère d'utiliser setVideoURI pour le streaming, mais je ne suis pas clair quel genre d'URL que je devrais utiliser. Est-ce que quelqu'un a un exemple d'URL pour une vidéo qui peut être diffusé en continu l'émulateur Android en utilisant le code VideoViewDemo?
Peut téléchargement progressif être utilisé avec VideoViewDemo? Je reçois un « désolé, cette vidéo ne peut être lu » message en utilisant setVideoPath avec les URL qui fonctionnent bien avec l'exemple du blog lien ci-dessus. (Est-ce un problème dans l'émulateur? J'ai essayé 1.5 et 2.0.)
Je l'ai trouvé beaucoup d'exemples et de la documentation en ligne, mais, jusqu'à présent, rien qui répond vraiment à cette question.
La solution
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 en les échantillons API?
Il devrait. Il fonctionne certainement avec MediaPlayer
et VideoView
est juste une enveloppe de ligne ~ 200 autour MediaPlayer
et SurfaceView
.
Le code VideoViewDemo suggère d'utiliser setVideoURI pour le streaming, mais je ne suis pas clair quel genre d'URL je serais à l'aide.
http://
et rtsp://
peuvent fonctionner, si la vidéo a été codé correctement.
Est-ce que quelqu'un a un exemple d'URL pour une vidéo qui peut être diffusé en continu à la émulateur Android à l'aide du Code VideoViewDemo?
Cette vidéo fonctionne avec MediaPlayer
, sauf sur le Nexus One.
EDIT :. En fait, ce lien fonctionne avec le Nexus One et
Autres conseils
Il fonctionne pour les cas simples, mais seulement quand il est pas nécessaire de faire des préparations personnalisées pour les demandes pour obtenir un flux.
Ce tutoriel montre un exemple d'émulation de streaming manuel pour un audio, mais il peut être un peu refactorisé pour lire la vidéo:
(assurez-vous d'utiliser FileDescriptor
lors de la mise dataSource
, l'API a été légèrement modifiée de cette époque).
VideoView ne peut diffuser des vidéos 3gp, mais je recommande ce code pour diffuser votre vidéo
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}
ou Cliquez ici pour regarder la vidéo en streaming Android Tutorial .