Comment lire les vidéos YouTube
dans mon application? Je veux play video
en la diffusant directement depuis YouTube sans téléchargement. De plus, lors de la lecture de vidéos, je souhaite fournir des options de menu. Je ne veux pas lire de vidéo en utilisant l’intention par défaut. Comment puis-je faire ceci?
Ceci est l’événement click btn
btnvideo.setOnClickListener(new OnClickListener() { public void onClick(View v) { startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.youtube.com/watch?v=Hxy8BZGQ5Jo"))); Log.i("Video", "Video Playing...."); } });
ce type il a ouvert dans une autre page avec le youtube où vous pouvez montrer votre vidéo
Découvrez l’ API YouTube Player officielle.
Pas
Créez une nouvelle activité pour votre écran de joueur (plein écran) avec les options du menu. Exécutez le mediaplayer et l’interface utilisateur dans des threads différents.
Pour lire des médias – En général, pour lire des fichiers audio / vidéo, il y a api mediaplayer dans Android. FILE_PATH est le chemin du fichier – peut être un stream URL (youtube) ou un chemin de fichier local
MediaPlayer mp = new MediaPlayer(); mp.setDataSource(FILE_PATH); mp.prepare(); mp.start();
Vérifiez également que l’ application YouTube YouTube Play Video Intent en a déjà discuté en détail.
Utilisez l’API Android Player de YouTube.
activity_main.xml:
MainActivity.java:
package com.example.andreaskonstantakos.vfy; import android.os.Bundle; import android.view.View; import android.widget.Button; import com.google.android.youtube.player.YouTubeBaseActivity; import com.google.android.youtube.player.YouTubeInitializationResult; import com.google.android.youtube.player.YouTubePlayer; import com.google.android.youtube.player.YouTubePlayerView; public class MainActivity extends YouTubeBaseActivity { YouTubePlayerView youTubePlayerView; Button button; YouTubePlayer.OnInitializedListener onInitializedListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtube_player); button = (Button) findViewById(R.id.button); onInitializedListener = new YouTubePlayer.OnInitializedListener(){ @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { youTubePlayer.loadVideo("Hce74cEAAaE"); youTubePlayer.play(); } @Override public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { } }; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { youTubePlayerView.initialize(PlayerConfig.API_KEY,onInitializedListener); } }); } }
et la classe PlayerConfig.java:
package com.example.andreaskonstantakos.vfy; /** * Created by Andreas Konstantakos on 13/4/2017. */ public class PlayerConfig { PlayerConfig(){} public static final Ssortingng API_KEY = "xxxxx"; }
Remplacez le “Hce74cEAAaE” par votre ID vidéo sur https://www.youtube.com/watch?v=Hce74cEAAaE . Obtenez votre API_KEY à partir de Console.developers.google.com et remplacez-le également dans PlayerConfig.API_KEY. Pour plus d’informations, vous pouvez suivre le didacticiel suivant étape par étape: https://www.youtube.com/watch?v=3LiubyYpEUk
Vous pouvez consulter l’application Android-Youtube-Player qui peut être trouvée ici .
Dans cet exemple d’application, les vidéos sur youtube sont lues dans une vidéo plutôt qu’une webview.
J’espère que ce lien vous aidera http://android-coding.blogspot.in/2011/03/simple-example-using-videoview-to-play.html
Pour convertir une vidéo youtube en rtsp, utilisez ce code github – youtube-url2rtsp
Cette réponse pourrait être très tardive mais utile.
Vous pouvez lire des vidéos YouTube dans l’application elle – même en utilisant un lecteur Android-YouTube .
Quelques extraits de code:
Pour lire une vidéo sur youtube qui a un identifiant vidéo dans l’URL, vous appelez simplement l’intention OpenYouTubePlayerActivity
Intent intent = new Intent(null, Uri.parse("ytv://"+v), this, OpenYouTubePlayerActivity.class); startActivity(intent);
où v est l’identifiant de la vidéo.
Ajoutez les permissions suivantes dans le fichier manifeste:
et également déclarer cette activité dans le fichier manifeste:
De plus amples informations peuvent être obtenues à partir des premières parties de ce fichier de code.
J’espère que ça aide n’importe qui!
Google dispose d’une API YouTube Player Android qui vous permet d’intégrer la fonctionnalité de lecture vidéo dans vos applications Android. L’API elle-même est très facile à utiliser et fonctionne bien. Par exemple, voici comment créer une nouvelle activité pour lire une vidéo à l’aide de l’API.
Intent intent = YouTubeStandalonePlayer.createVideoIntent(this, "<>", "<>", 0, true, false); startActivity(intent);
Voir ceci pour plus de détails.
Vous pouvez utiliser iframe comme décrit dans https://developers.google.com/youtube/iframe_api_reference
Je ne suis pas le conseil de Google exactement, mais c’est le code que j’utilise et il fonctionne très bien
public class CWebVideoView { private Ssortingng url; private Context context; private WebView webview; private static final Ssortingng HTML_TEMPLATE = "webvideo.html"; public CWebVideoView(Context context, WebView webview) { this.webview = webview; this.context = context; webview.setBackgroundColor(0); webview.getSettings().setJavaScriptEnabled(true); } public void load(Ssortingng url){ this.url = url; Ssortingng data = readFromfile(HTML_TEMPLATE, context); data = data.replace("%1", url); webview.loadData(data, "text/html", "UTF-8"); } public Ssortingng readFromfile(Ssortingng fileName, Context context) { SsortingngBuilder returnSsortingng = new SsortingngBuilder(); InputStream fIn = null; InputStreamReader isr = null; BufferedReader input = null; try { fIn = context.getResources().getAssets().open(fileName, Context.MODE_WORLD_READABLE); isr = new InputStreamReader(fIn); input = new BufferedReader(isr); Ssortingng line = ""; while ((line = input.readLine()) != null) { returnSsortingng.append(line); } } catch (Exception e) { e.getMessage(); } finally { try { if (isr != null) isr.close(); if (fIn != null) fIn.close(); if (input != null) input.close(); } catch (Exception e2) { e2.getMessage(); } } return returnSsortingng.toSsortingng(); } public void reload() { if (url!=null){ load(url); } } }
dans / assets j’ai un fichier appelé webvideo.html
et maintenant je définir un webview à l’intérieur de ma mise en page principale
et j’utilise CWebVideoView dans mon activité
videoView = (WebView) view.findViewById(R.id.video); videoView.setVisibility(View.VISIBLE); cWebVideoView = new CWebVideoView(context, videoView); cWebVideoView.load(url);
vous pouvez utiliser ce projet pour lire n’importe quelle vidéo tube, dans votre application Android. Maintenant, pour d’autres vidéos, ou identifiant vidéo … vous pouvez le faire https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads/ où eminemvevo = channel .
après avoir trouvé, identifiant vidéo, vous pouvez mettre cet identifiant dans cueVideo("video_id")
src -> com -> examples -> youtubeapidemo -> PlayerViewDemoActivity @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player , boolean wasRestored) { if (!wasRestored) { player.cueVideo("wKJ9KzGQq0w"); } }
Et spécialement pour lire cet identifiant video_id mieux, ouvrez -le avec le fichier xml [ 1st_file
] sur votre bureau après avoir créé un nouveau fichier Xml dans votre project
ou téléchargez ce 1st_file
[ 1st_file
] dans votre projet et cliquez avec le bouton droit sur et l’ouvrir avec le fichier xml_editor, vous trouverez ici l’id de la vidéo particulière.
MediaPlayer mp=new MediaPlayer(); mp.setDataSource(path); mp.setScreenOnWhilePlaying(true); mp.setDisplay(holder); mp.prepare(); mp.start();
Je ne voulais pas que l’application YouTube soit présente sur l’appareil, j’ai donc utilisé ce tutoriel:
http://www.viralandroid.com/2015/09/how-to-embed-youtube-video-in-android-webview.html
… pour produire ce code dans mon application:
WebView mWebView; @Override public void onCreate(Bundle savedInstanceState) { setContentView(R.layout.video_webview); mWebView=(WebView)findViewById(R.id.videoview); //build your own src link with your video ID Ssortingng videoStr = "Promo video
"; mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, Ssortingng url) { return false; } }); WebSettings ws = mWebView.getSettings(); ws.setJavaScriptEnabled(true); mWebView.loadData(videoStr, "text/html", "utf-8"); } //video_webview
Cela a fonctionné juste comme je le voulais. Il ne lit pas automatiquement mais la vidéo est diffusée dans mon application. Il convient de noter que certaines vidéos restreintes ne seront pas lues lorsqu’elles sont intégrées.
Ssortingng video = "https://www.youtube.com/watch?v=SrPHLj_q_OQ"; Intent openVideo = new Intent(Intent.ACTION_VIEW); openVideo.setDataAndType(Uri.parse(video), "video/*"); startActivity(openVideo);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watchv=cxLG2wtE7TM")); startActivity(intent);