Comment lire les vidéos YouTube
dans mon application? Je veux play video
en le diffusant directement depuis YouTube sans téléchargement. Aussi, 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 ceci?
C'est l'événement btn click
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 la version officielle YouTube Android API du lecteur .
Pas
Créez une nouvelle activité pour votre lecteur (plein écran) avec des options de menu. Exécutez le lecteur multimédia et l'interface utilisateur dans différents threads.
Pour lire des médias - En général, pour lire de l'audio/de la vidéo, il existe une api mediaplayer dans Android. FILE_PATH est le chemin du fichier - peut être un flux d'URL (youtube) ou un chemin de fichier local
MediaPlayer mp = new MediaPlayer(); mp.setDataSource(FILE_PATH); mp.prepare(); mp.start();
Vérifiez également: Intention de l'application vidéo Play Video pour l'application YouTube YouTube en avons déjà discuté en détail.
Utilisez YouTube Android API du lecteur.
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>
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 String API_KEY =
"xxxxx";
}
Remplacez le "Hce74cEAAaE" par votre ID vidéo provenant de https://www.youtube.com/watch?v=Hce74cEAAaE . Obtenez votre API_KEY auprès de Console.developers.google.com et remplacez-la également sur le PlayerConfig.API_KEY. Pour toute information complémentaire, vous pouvez suivre pas à pas le didacticiel suivant: https://www.youtube.com/watch?v=3LiubyYpEUk
Vous pouvez jeter un oeil à l'application Android-Youtube-Player qui peut être trouvée ici .
Dans cet exemple d'application, les vidéos youtube sont lues dans une vidéo plutôt que dans une vue Web.
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 ceci code github - youtube-url2rtsp
Vous pouvez utiliser l'iframe comme décrit dans https://developers.google.com/youtube/iframe_api_reference
Je ne suis pas les conseils de Google à la lettre, mais c’est le code que j’utilise et qui 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/assets 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 une vue Web dans 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 dans mon activité
videoView = (WebView) view.findViewById(R.id.video);
videoView.setVisibility(View.VISIBLE);
cWebVideoView = new CWebVideoView(context, videoView);
cWebVideoView.load(url);
Google possède une YouTube Android API) qui vous permet d'intégrer une fonctionnalité de lecture vidéo à vos Android applications. 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, "<<YOUTUBE_API_KEY>>", "<<Youtube Video ID>>", 0, true, false);
startActivity(intent);
Voir this pour plus de détails.
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
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>
Cela a fonctionné exactement comme je le voulais. Il ne lit pas automatiquement, mais les flux vidéo au sein de mon application. Il est à noter que certaines vidéos restreintes ne peuvent pas être lues lorsqu'elles sont intégrées.
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 Android-youtube-player .
Quelques extraits de code:
Pour lire une vidéo youtube comportant un identifiant de vidéo dans l'URL, il vous suffit d'appeler le OpenYouTubePlayerActivity
intent
Intent intent = new Intent(null, Uri.parse("ytv://"+v), this,
OpenYouTubePlayerActivity.class);
startActivity(intent);
où v est l'id de la vidéo.
Ajoutez les autorisations suivantes dans le fichier manifeste:
<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 déclarer également cette activité dans le fichier manifeste:
<activity
Android:name="com.keyes.youtube.OpenYouTubePlayerActivity"></activity>
Des informations supplémentaires peuvent être obtenues à partir des premières parties du fichier de code this .
J'espère que ça aide n'importe qui!
vous pouvez utiliser this project pour lire n'importe quelle vidéo You Tube, dans votre Android app. Maintenant, pour une autre vidéo ou un identifiant vidéo ... vous pouvez le faire - https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads/ où eminemvevo = channel .
après avoir trouvé, id 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 mieux lire video_id open this, et tout ça au format xml [1st_file
] dans votre bureau après avoir créé un nouveau fichier XML dans votre project
ou téléchargez ce fichier [1st_file
] fichier enregistré dans votre projet, cliquez avec le bouton droit de la souris sur celui-ci et ouvrez-le avec le fichier xml_editor. Vous y trouverez l'id de la vidéo en question.
MediaPlayer mp=new MediaPlayer();
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();