2009-06-17 7 views
28

Je vous écris une application pour lire des vidéos YouTube en utilisant le streaming.streaming Youtube Vidéos

Première méthode:

Je reçois l'URL RTSP à la vidéo en utilisant les API GData. Voici le code pour lire l'URL RTSP.

VideoView mVideoView = new VideoView(this); 
    setContentView(mVideoView); 
    mVideoView.setVideoURI(Uri.parse("rtsp://rtsp2.youtube.com/CiILENy73wIaGQkDwpjrUxOWQBMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp")); 
    mVideoView.start(); 

Mais il jette l'erreur sur les deux dispositif G1 et l'émulateur (Emulator a un problème de pare-feu selon la liste de diffusion) Voici le message d'erreur

erreur/PlayerDriver (35): Commande PLAYER_INIT terminé avec une erreur ou information PVMFFailure

Deuxième méthode:

une façon hack pour obtenir le chemin du fichier 3gp de Après avoir obtenu le chemin du fichier et je peux appeler setVideoURI et il joue bien. Mais c'est un moyen de piratage pour atteindre l'exigence. J'ai vérifié l'App Youtube aussi, il fait aussi le chemin de hack pour jouer l'url youtube. (Vérifié avec logcat)

J'ai essayé de changer de VideoView à MediaPlayer, mais aucun changement dans l'erreur.

est-il un moyen « Clean » de le faire?

S'il vous plaît laissez-moi savoir votre opinion.

+1

Pourriez-vous expliquer peut-être le pirater un peu plus? Je suis confronté au même problème. – Janusz

+0

Vous ne pouvez pas invoquer le lecteur YouTube pour lire la vidéo? (similaire au fonctionnement de l'application YouTube pour iPhone?) – Geoff

+0

Jetez également un coup d'œil à [Comment obtenir une miniature du lien vidéo YouTube à l'aide de l'API YouTube?] (http://stackoverflow.com/q/2068344/995926) Répondez aux points suivants pour obtenir l'url rtsp: Essayez celui-ci comme exemple: http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&prettyprint=true&alt=json – rekire

Répondre

1

Je suis impressionné que la façon dont fonctionne sale du tout! Si vous avez une solution de travail, allez-y. Je ne pense pas qu'il existe un moyen propre de faire fonctionner le streaming RTSP dans le SDK.

2

Si vous êtes prêt à faire le travail dans une nouvelle activité, ce qui suit fonctionnera sur un appareil, mais pas sur l'émulateur:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));

+3

Cela fonctionne sur l'appareil, car il a installé l'application youtube. Je ne veux pas que mon application dépende de Youtube App – Vinay

+0

est-il un autre moyen de lire la vidéo youtube sans application youtube ou appareil ne supporte pas flash et html5. –

2

Parfois Uri.parse retour « null » parce dévers analyser un protocole rtsp au lieu du protocole http.

Regardez avec un Connexion logcat Uri.parse(rtspURL).toString() et vous ne verrez rien écrit. ou seulement faire Log.d("tag", Uri.parse); et le même sera le retour.

Essayez de trouver un autre moyen pour analyser (créer) un Uri.

Je vais essayer avec ça et courir:

String urlVideo = <your rtspURL> 
VideoView video = (VideoView)findViewById(R.id.VideoView01); 
Log.d(tag , urlVideo); 
video.setVideoURI(Uri.parse(urlVideo)); 
MediaController mc = new MediaController(this); 
video.setMediaController(mc); 
video.requestFocus(); 
video.start(); 
mc.show(); 
+0

Je suis assez nouveau pour le streaming vidéo sur Android. Pourriez-vous étoffer l'explication? – JohnK

0

J'ai affiché des vidéos YouTube avec le code suivant. J'espère que c'est utile, mais laissez-moi savoir comment cela pourrait être amélioré.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    startActivity(new Intent(Intent.ACTION_VIEW, 
        Uri.parse("http://www.youtube.com/watch?v=..."))); 
} 

public void onPrepared(MediaPlayer mp) { 
    // TODO Auto-generated method stub 
} 
+1

votre code va charger la page pas la vidéo du serveur. – IronBlossom

+0

Ce code va lancer le lecteur par défaut youtube qui n'est pas l'exigence en question –

1

Nous avons rencontré un problème très similaire.

En ce moment je suis à la première étape de mon projet et je suis en train de faire le VideoView fonctionne simplement. Je prends des données d'ici: http://gdata.youtube.com/demo/ et je teste tous les liens de vidéos.

Les vidéos RTSP 3GP sont vraiment des vidéos de très basse qualité .... et il n'y a aucun moyen d'accéder aux vidéos mp4 (de bonne qualité). Je ne sais vraiment pas comment faire cela fonctionne parce que je pense que les flux MP4 ne sont disponibles que pour les devs premium ....

1

oeil sur Throw Youtube API

Je pense que cela aussi utiliser l'application YouTube (qui vous don « t veulent)

Mais peut-être se référer vous trouverez une clé pour résoudre

0

l'en-tête sur la vidéo indique qu'il fonctionne pour Android. Alors, essayez un bon lien vidéo pour expérimenter. Voici celui que j'utilise:

rtsp: //184.72.239.149/vod/mp4: BigBuckBunny_115k.mov

Je travaille beaucoup sur les tablettes Nexus et Samsung.

0

avez-vous l'accès à internet? sinon, s'il vous plaît ajouter l'autorisation d'Internet au fichier manifeste

<uses-permission android:name="android.permission.INTERNET" /> 

et aussi s'il vous plaît essayer ces URIs:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov 

http://www.wowza.com/_h264/BigBuckBunny_175k.mov 
Questions connexes