Как воспроизвести YouTube
видео в моем приложении? Я хочу play video
транслировать его прямо с YouTube без загрузки. Кроме того, при воспроизведении видео я хочу предоставить параметры меню. Я не хочу воспроизводить видео с намерением по умолчанию. Как я могу это сделать?
84
Ответы:
Это событие щелчка 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...."); } });
этого типа он открылся на другой странице с YouTube, где вы можете показать свое видео
источник
VideoView
требуется абсолютный URL-адрес видео, который в случае YouTube, вероятно, недоступен.Шаги
Создайте новое действие для экрана вашего плеера (полноэкранный) с параметрами меню. Запустите медиаплеер и пользовательский интерфейс в разных потоках.
Для воспроизведения мультимедиа - как правило, для воспроизведения аудио / видео в android есть mediaplayer api. FILE_PATH - это путь к файлу - может быть поток url (youtube) или путь к локальному файлу
Также проверьте: Android-приложение YouTube Play Video Intent уже подробно обсуждает это.
источник
Используйте YouTube Android Player API.
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
источник
Мне не хотелось, чтобы на устройстве было приложение 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>
Это сработало именно так, как я этого хотел. Это не автовоспроизведение, а видеопотоки в моем приложении. Стоит отметить, что некоторые запрещенные видео не воспроизводятся во встроенном виде.
источник
Вы можете использовать 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); } } }
в / 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 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);
источник
Этот ответ может быть очень поздним, но он полезен.
Вы можете воспроизводить видео на YouTube в самом приложении с помощью android-youtube-player .
Некоторые фрагменты кода:
Чтобы воспроизвести видео на YouTube, в URL-адресе которого указан идентификатор видео, вы просто вызываете
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>
Дополнительную информацию можно получить из первых частей этого файла кода.
Надеюсь, это поможет кому-нибудь!
источник
У Google есть API YouTube для Android Player, который позволяет вам включать функцию воспроизведения видео в свои приложения Android. Сам API очень прост в использовании и хорошо работает. Например, вот как создать новое действие для воспроизведения видео с помощью API.
Intent intent = YouTubeStandalonePlayer.createVideoIntent(this, "<<YOUTUBE_API_KEY>>", "<<Youtube Video ID>>", 0, true, false); startActivity(intent);
См. Это для более подробной информации.
источник
вы можете использовать этот проект для воспроизведения любого видео в вашем приложении для 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"); } }
И специально для того, чтобы лучше прочитать этот video_id, откройте его и его как
1st_file
файл xml [ ] на рабочем столе после того, как он создаст новый файл Xml в вашемproject
или загрузит этот [1st_file
] сохраненный файл в свой проект, и щелкните его правой кнопкой мыши, и откройте его с помощью файла xml_editor, здесь вы найдете идентификатор конкретного видео.источник
MediaPlayer mp=new MediaPlayer(); mp.setDataSource(path); mp.setScreenOnWhilePlaying(true); mp.setDisplay(holder); mp.prepare(); mp.start();
источник
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watchv=cxLG2wtE7TM")); startActivity(intent);
источник