Como faço para reproduzir YouTube
vídeos em meu aplicativo? Eu quero fazer play video
streaming diretamente do YouTube sem fazer download. Além disso, durante a reprodução de vídeos, desejo fornecer opções de menu. Não quero reproduzir o vídeo usando a intenção padrão. Como posso fazer isso?
84
Respostas:
Este é o evento 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...."); } });
este tipo abriu em outra página com o youtube onde vc pode mostrar o seu vídeo
fonte
VideoView
requer o URL absoluto do vídeo, que no caso do YouTube provavelmente não está disponível.Passos
Crie uma nova atividade, para a tela do seu jogador (tela cheia) com opções de menu. Execute o mediaplayer e a IU em threads diferentes.
Para reproduzir mídia - Em geral, para reproduzir áudio / vídeo, há api mediaplayer no Android. FILE_PATH é o caminho do arquivo - pode ser url (youtube) stream ou caminho do arquivo local
Verifique também: a intenção de reprodução de vídeo do aplicativo YouTube para Android já discutimos isso em detalhes.
fonte
Use a API do YouTube Android Player.
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); } }); } }
e a 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"; }
Substitua o "Hce74cEAAaE" pelo ID do seu vídeo em https://www.youtube.com/watch?v=Hce74cEAAaE . Obtenha sua API_KEY em Console.developers.google.com e substitua-a também em PlayerConfig.API_KEY. Para mais informações, você pode seguir o seguinte tutorial passo a passo: https://www.youtube.com/watch?v=3LiubyYpEUk
fonte
Eu não queria ter o aplicativo do YouTube presente no dispositivo, então usei este tutorial:
http://www.viralandroid.com/2015/09/how-to-embed-youtube-video-in-android-webview.html
... para produzir este código em meu aplicativo:
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>
Funcionou exatamente como eu queria. Ele não é reproduzido automaticamente, mas o vídeo é transmitido em meu aplicativo. É importante notar que alguns vídeos restritos não serão reproduzidos quando incorporados.
fonte
Você pode usar iframe conforme descrito em https://developers.google.com/youtube/iframe_api_reference
Não estou seguindo os conselhos do google exatamente, mas este é o código que estou usando e está funcionando bem
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); } } }
em / assets, tenho um arquivo chamado 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>
e agora eu defino uma webview dentro do meu layout principal
<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" />
e eu uso CWebVideoView dentro da minha atividade
videoView = (WebView) view.findViewById(R.id.video); videoView.setVisibility(View.VISIBLE); cWebVideoView = new CWebVideoView(context, videoView); cWebVideoView.load(url);
fonte
Esta resposta pode estar muito atrasada, mas é útil.
Você pode reproduzir vídeos do YouTube no próprio aplicativo usando o android-youtube-player .
Alguns trechos de código:
Para reproduzir um vídeo do YouTube que tem um id de vídeo no url, basta chamar o
OpenYouTubePlayerActivity
intentIntent intent = new Intent(null, Uri.parse("ytv://"+v), this, OpenYouTubePlayerActivity.class); startActivity(intent);
onde v é o id do vídeo.
Adicione as seguintes permissões no arquivo de manifesto:
<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"/>
e também declara essa atividade no arquivo de manifesto:
<activity android:name="com.keyes.youtube.OpenYouTubePlayerActivity"></activity>
Mais informações podem ser obtidas nas primeiras partes deste arquivo de código.
Espero que ajude alguém!
fonte
O Google possui uma API do YouTube Android Player que permite incorporar a funcionalidade de reprodução de vídeo em seus aplicativos Android. A API em si é muito fácil de usar e funciona bem. Por exemplo, aqui está como criar uma nova atividade para reproduzir um vídeo usando a API.
Intent intent = YouTubeStandalonePlayer.createVideoIntent(this, "<<YOUTUBE_API_KEY>>", "<<Youtube Video ID>>", 0, true, false); startActivity(intent);
Veja isto para mais detalhes.
fonte
você pode usar este projeto para reproduzir qualquer vídeo do You Tube, em seu aplicativo Android. Agora, para outro vídeo ou ID de vídeo ... você pode fazer isso https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads/ onde eminemvevo = canal .
depois de encontrar, id de vídeo, você pode colocar essa id em
cueVideo("video_id")
src -> com -> examples -> youtubeapidemo -> PlayerViewDemoActivity @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player , boolean wasRestored) { if (!wasRestored) { player.cueVideo("wKJ9KzGQq0w"); } }
E especialmente para ler esse video_id de uma maneira melhor, abra isso, e como um
1st_file
arquivo xml [ ] em sua área de trabalho, depois de criar um novo arquivo Xml em seuproject
ou enviar esse arquivo [1st_file
] salvo em seu projeto, e clicar com o botão direito nele, e abra-o com o arquivo xml_editor, aqui você encontrará o id do vídeo em questão.fonte
MediaPlayer mp=new MediaPlayer(); mp.setDataSource(path); mp.setScreenOnWhilePlaying(true); mp.setDisplay(holder); mp.prepare(); mp.start();
fonte
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watchv=cxLG2wtE7TM")); startActivity(intent);
fonte