Как воспроизводить видео на YouTube в приложении для Android?

Как воспроизвести видеоролики YouTube в своем приложении? Я хочу play video , транслируя его прямо с YouTube без загрузки. Кроме того, во время воспроизведения видео я хочу предоставить параметры меню. Я не хочу играть в видео, используя намерение по умолчанию. Как я могу это сделать?

Это событие 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...."); } }); 

Этот тип он открылся на другой странице с помощью youtube, где вы можете показывать свое видео

Ознакомьтесь с официальным API для Android-плееров YouTube .

меры

  1. Создайте новое действие для экрана вашего плеера (полноэкранного) с опциями меню. Запустите медиаплеер и пользовательский интерфейс в разных потоках.

  2. Для воспроизведения мультимедиа – В общем, для воспроизведения аудио / видео в андроиде есть медиа-плеер api. FILE_PATH – это путь к файлу – может быть поток url ​​(youtube) или локальный путь к файлу

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

Также проверьте: Android-приложение YouTube Play Video Intent уже подробно обсудило это.

Вы можете посмотреть приложение Android-Youtube-Player, которое можно найти здесь .
В этом примере приложения видеоролики youtube воспроизводятся в видеообъявлении, а не в веб-просмотре.

Надеюсь, эта ссылка поможет вам http://android-coding.blogspot.in/2011/03/simple-example-using-videoview-to-play.html

Чтобы преобразовать видео youtube в rtsp, используйте этот код github – youtube-url2rtsp

Этот ответ может быть очень запоздалым, но это полезно.

Вы можете воспроизводить видео YouTube в самом приложении, используя андроид-youtube-плеер .

Некоторые фрагменты кода:

Чтобы воспроизвести видео на YouTube с идентификатором видео в URL- OpenYouTubePlayerActivity , вы просто вызываете намерение OpenYouTubePlayerActivity

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

Где v – идентификатор видео.

Добавьте в файл манифеста следующие разрешения:

 <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"/> 

А также объявить это действие в файле манифеста:

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

Дополнительная информация может быть получена из первых частей этого файла кода.

Надеюсь, что кто-то поможет!

Вы можете использовать iframe, как описано в https://developers.google.com/youtube/iframe_api_reference

Я не следую рекомендациям Google, но это код, который я использую, и он отлично работает

 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); } } } 

In / assets У меня есть файл под названием 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> 

И теперь я определяю webview внутри моего основного макета

 <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" /> 

И я использую CWebVideoView внутри своей деятельности

 videoView = (WebView) view.findViewById(R.id.video); videoView.setVisibility(View.VISIBLE); cWebVideoView = new CWebVideoView(context, videoView); cWebVideoView.load(url); 

Используйте API для 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> 

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); } }); } } 

И класс 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"; } 

Замените «Hce74cEAAaE» вашим идентификатором видео с https://www.youtube.com/watch?v=Hce74cEAAaE . Получите ваш API_KEY с Console.developers.google.com, а также замените его на PlayerConfig.API_KEY. Для получения дополнительной информации вы можете последовательно следовать следующему руководству: https://www.youtube.com/watch?v=3LiubyYpEUk

Вы можете использовать этот проект для воспроизведения любого видеоролика в вашем приложении для Android. Теперь для другого видео или идентификатора видео … вы можете сделать это https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads/, где eminemvevo = channel .

После нахождения идентификатора видео вы можете поместить этот идентификатор в cueVideo("video_id")

 src -> com -> examples -> youtubeapidemo -> PlayerViewDemoActivity @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player , boolean wasRestored) { if (!wasRestored) { player.cueVideo("wKJ9KzGQq0w"); } } 

И специально для чтения этого видео-файла лучше всего открыть это, и это как файл xml [ 1st_file ] на рабочем столе после того, как он создаст новый Xml-файл в вашем project или загрузит этот файл [ 1st_file ] в ваш проект, а right_click в Его и открыть его с помощью xml_editor файла, здесь вы найдете идентификатор видео определенного видео.

Введите описание изображения здесь

 MediaPlayer mp=new MediaPlayer(); mp.setDataSource(path); mp.setScreenOnWhilePlaying(true); mp.setDisplay(holder); mp.prepare(); mp.start(); 

Google имеет API Android Player для Android, который позволяет вам включать функции воспроизведения видео в приложения Android. Сам API очень прост в использовании и работает хорошо. Например, вот как создать новое действие для воспроизведения видео с помощью API.

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

См. Это для более подробной информации.

Я не хотел, чтобы приложение YouTube присутствовало на устройстве, поэтому я использовал этот учебник:

http://www.viralandroid.com/2015/09/how-to-embed-youtube-video-in-android-webview.html

… для создания этого кода в моем приложении:

 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> 

Это работало именно так, как я этого хотел. Это не автовоспроизведение, а потоки видео в моем приложении. Стоит отметить, что некоторые ограниченные видео не будут воспроизводиться при встраивании.

 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); 
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watchv=cxLG2wtE7TM")); startActivity(intent);