Comment jouer Vidéo YouTube dans mon application Android?

Comment lire YouTube vidéos dans mon application? Je veux play video en streaming directement à partir de YouTube sans téléchargement. En outre, lors de la lecture de vidéos, je veux fournir des options de menu. Je ne veux pas lire la vidéo en utilisant l'intention par défaut. Comment puis-je faire cela?

69
demandé sur Brian Camire 2011-01-11 09:37:25

14 réponses

c'est l'événement de clic 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 ""

60
répondu Parag Chauhan 2013-04-11 05:22:24

Check out the official YouTube Android Player API .

21
répondu Nirvana Tikku 2012-12-31 07:50:10

Étapes

  1. créez une nouvelle activité, pour l'écran de votre lecteur(plein écran) avec des options de menu. Lancez mediaplayer et UI dans des threads différents.

  2. pour la lecture des médias - en général pour lire l'audio/vidéo il y a l'api mediaplayer sur android. FILE_PATH est le chemin du fichier - peut être url(youtube) stream ou chemin du fichier local

     MediaPlayer mp = new MediaPlayer();
        mp.setDataSource(FILE_PATH);
        mp.prepare();
        mp.start();
    

vérifiez aussi: Android YouTube app Play Video Intent avons déjà discuté de cela en détail.

15
répondu Naresh 2017-05-23 12:02:23

utilisez L'API de lecteur Android YouTube.

activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context="com.example.andreaskonstantakos.vfy.MainActivity">

<com.google.android.youtube.player.YouTubePlayerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="visible"
    android:layout_centerHorizontal="true"
    android:id="@+id/youtube_player"
    android:layout_alignParentTop="true" />

<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="195dp"
android:visibility="visible"
android:id="@+id/button" />


</RelativeLayout>

activité principale.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 le PlayerConfig.classe java:

    package com.example.andreaskonstantakos.vfy;

/**
 * Created by Andreas Konstantakos on 13/4/2017.
 */

public class PlayerConfig {

PlayerConfig(){}

public static final String API_KEY = 
"xxxxx";
}

remplacer le "Hce74cEAAaE" par votre identifiant vidéo de https://www.youtube.com/watch?v=Hce74cEAAaE . Obtenez votre API_KEY de Console.developers.google.com et aussi le remplacer sur la config Player.API_KEY. Pour toutes les informations supplémentaires vous pouvez suivre le tutoriel suivant étape par étape: https://www.youtube.com/watch?v=3LiubyYpEUk

6
répondu Andreas Konstantakos 2017-04-13 01:48:30

vous pouvez jeter un oeil à L'application Android-Youtube-Player qui se trouve ici .

dans cet exemple d'application, les vidéos youtube sont lues dans une vue vidéo plutôt que dans une vue Web.

5
répondu androidCoder 2012-02-29 13:41:04

Espérons que ce lien t'aidera http://android-coding.blogspot.in/2011/03/simple-example-using-videoview-to-play.html

pour convertir une vidéo youtube à rtsp utiliser ce GitHub code-youtube-url2rtsp

4
répondu Arjun 2014-12-02 11:00:13

cette réponse pourrait être vraiment tardive, mais elle est utile.

vous pouvez lire des vidéos youtube dans l'application elle-même en utilisant android-youtube-player .

quelques extraits de code:

pour lire une vidéo youtube qui a un id de vidéo dans l'url, vous appelez simplement le OpenYouTubePlayerActivity intention

Intent intent = new Intent(null, Uri.parse("ytv://"+v), this, 
            OpenYouTubePlayerActivity.class);
startActivity(intent);

où v est l'identifiant de la vidéo.

ajouter le autorisations suivantes dans le fichier manifest:

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

et aussi déclarer cette activité dans le fichier manifeste:

<activity 
        android:name="com.keyes.youtube.OpenYouTubePlayerActivity"></activity>

vous pouvez obtenir de plus amples renseignements à partir des premières parties de ce fichier de code .

Espère que ça aide quelqu'un!

2
répondu Rat-a-tat-a-tat Ratatouille 2014-05-09 06:58:12

Google a un YouTube Android Player API 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 en utilisant L'API.

Intent intent = YouTubeStandalonePlayer.createVideoIntent(this, "<<YOUTUBE_API_KEY>>", "<<Youtube Video ID>>", 0, true, false);   
startActivity(intent);

voir ce pour plus de détails.

2
répondu Sapan Diwakar 2014-09-08 10:33:07

vous pouvez utiliser iframe comme décrit dans https://developers.google.com/youtube/iframe_api_reference

Je ne suis pas exactement les conseils de google, mais c'est le code que j'utilise et il fonctionne très bien

public class CWebVideoView {

    private String url;
    private Context context;
    private WebView webview;
    private static final String 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(String url){
        this.url = url;
        String data = readFromfile(HTML_TEMPLATE, context);
        data = data.replace("%1", url);
        webview.loadData(data, "text/html", "UTF-8");
    }

    public String readFromfile(String fileName, Context context) {
        StringBuilder returnString = new StringBuilder();
        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);
            String line = "";
            while ((line = input.readLine()) != null) {
                returnString.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 returnString.toString();
    }

    public void reload() {
        if (url!=null){
            load(url);
        }
    }
}

dans /actif, j'ai un fichier appelé webvideo.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            iframe   { border: 0; position:fixed; width:100%; height:100%; bgcolor="#000000"; }
            body     { margin: 0; bgcolor="#000000"; }
        </style>        
    </head>
    <body>
        <iframe src="%1" frameborder="0" allowfullscreen></iframe>
    </body>
</html>

et maintenant je définis un webview à l'intérieur de ma mise en page principale

<WebView
    android:id="@+id/video"
    android:visibility="gone"
    android:background="#000000"
    android:layout_centerInParent="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

et j'utilise CWebVideoView à l'intérieur de mon activité

videoView = (WebView) view.findViewById(R.id.video);
videoView.setVisibility(View.VISIBLE);
cWebVideoView = new CWebVideoView(context, videoView);
cWebVideoView.load(url);
2
répondu jmhostalet 2015-10-22 14:47:47

Je ne voulais pas avoir L'application YouTube présente sur le périphérique donc j'ai 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
    String videoStr = "<html><body>Promo video<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/47yJ2XCRLZs\" frameborder=\"0\" allowfullscreen></iframe></body></html>";

    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
        }
    });
    WebSettings ws = mWebView.getSettings();
    ws.setJavaScriptEnabled(true);
    mWebView.loadData(videoStr, "text/html", "utf-8");

}

//video_webview
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:background="#000000"
    android:id="@+id/bmp_programme_ll"
    android:orientation="vertical" >

   <WebView
    android:id="@+id/videoview" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />  
</LinearLayout>     

ça a marché comme je le voulais. Il n'est pas autoplay mais les flux vidéo dans mon application. À noter que certaines vidéos restreintes ne seront pas lues lorsqu'il est incorporé.

2
répondu JanB 2016-05-28 06:41:36

vous pouvez utiliser ce" projet 151970920 " pour lire n'importe quelle vidéo You tube , dans votre application android . Maintenant, pour une autre vidéo, ou l'id de la vidéo ... vous pouvez le faire https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads / eminemvevo = canal .

après avoir trouvé, id vidéo , vous pouvez mettre cet id 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 ce vidéo_id better way ouvrir ceci , et il comme un fichier xml[ 1st_file ] dans votre bureau après qu'il créer un nouveau fichier Xml dans votre project ou télécharger que[ 1st_file ] fichier sauvegardé dans votre projet , et right_click dedans , et l'ouvrir avec le fichier xml_editor, ici vous trouverez l'id de la vidéo en particulier .

enter image description here

1
répondu Tushar Pandey 2013-10-17 11:32:15
MediaPlayer mp=new MediaPlayer(); 
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();
1
répondu user1642835 2014-01-09 12:47:07
String 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);  
0
répondu Kris Roofe 2016-11-21 09:30:30
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watchv=cxLG2wtE7TM"));
startActivity(intent);
-1
répondu Hassanuzzaman Khan 2016-07-13 12:29:37