アプリケーションでYouTube
ビデオを再生するにはどうすればよいですか?ダウンロードせずにYouTubeから直接ストリーミングしてplay video
したい。また、ビデオの再生中に、メニューオプションを提供する必要があります。デフォルトのインテントを使用してビデオを再生したくありません。これどうやってするの?
これは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 Android Player API をご覧ください。
手順
メニューオプションを使用してプレーヤー(フルスクリーン)画面用の新しいアクティビティを作成します。 mediaplayerとUIを異なるスレッドで実行します。
メディアの再生-一般に、オーディオ/ビデオを再生するには、Androidにmediaplayer apiがあります。 FILE_PATHはファイルのパスです-url(youtube)ストリームまたはローカルファイルパスです
MediaPlayer mp = new MediaPlayer(); mp.setDataSource(FILE_PATH); mp.prepare(); mp.start();
また、以下を確認してください: 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 のビデオIDに置き換えます。 Console.developers.google.comからAPI_KEYを取得し、PlayerConfig.API_KEYでそれを置き換えます。詳細については、次のチュートリアルをステップごとに実行できます。 https://www.youtube.com/watch?v=3LiubyYpEUk
here にあるAndroid-Youtube-Playerアプリをご覧ください。
このサンプルアプリでは、YouTube動画はウェブビューではなくビデオビュー内で再生されます。
このリンクがお役に立てば幸いです http://Android-coding.blogspot.in/2011/03/simple-example-using-videoview-to-play.html
Youtubeビデオをrtspに変換するには、これを使用します github code-youtube-url2rtsp
https://developers.google.com/youtube/iframe_api_reference の説明に従ってiframeを使用できます。
私は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);
Googleには YouTube Android Player API があり、Androidアプリケーションにビデオ再生機能を組み込むことができます。 API自体は非常に使いやすく、うまく機能します。たとえば、APIを使用して動画を再生する新しいアクティビティを作成する方法は次のとおりです。
Intent intent = YouTubeStandalonePlayer.createVideoIntent(this, "<<YOUTUBE_API_KEY>>", "<<Youtube Video ID>>", 0, true, false);
startActivity(intent);
詳細については、 this を参照してください。
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>
これは私が望んでいた通りに機能しました。自動再生はされませんが、ビデオはアプリ内でストリーミングされます。一部の制限されたビデオは、埋め込まれたときに再生されないことに注意してください。
この答えは本当に遅れる可能性がありますが、有用です。
Android-youtube-player を使用して、アプリ自体でyoutube動画を再生できます。
一部のコードスニペット:
URLにビデオIDが含まれるYouTubeビデオを再生するには、OpenYouTubePlayerActivity
インテントを呼び出すだけです
Intent intent = new Intent(null, Uri.parse("ytv://"+v), this,
OpenYouTubePlayerActivity.class);
startActivity(intent);
ここで、vはビデオIDです。
マニフェストファイルに次のアクセス許可を追加します。
<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>
詳細情報は、 this コードファイルの最初の部分から取得できます。
それが誰にも役立つことを願っています!
this projectを使用して、あなたのAndroidアプリであなたのチューブ動画を再生できます。今、他のビデオ、またはビデオIDのために...あなたはこれを行うことができます https://gdata.youtube.com/feeds/api/users/eminemvevo/uploads/ whereeminemvevo = channel。
ビデオIDを見つけたら、そのIDを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をより良い方法で読み取るために open this、そしてそれは新しいを作成した後、デスクトップのxml [1st_file
]ファイルとしてproject
のXmlファイルまたはプロジェクトに保存された[1st_file
]ファイルをアップロードし、右クリックしてxml_editorファイルで開きます。特定の動画の動画ID。
MediaPlayer mp=new MediaPlayer();
mp.setDataSource(path);
mp.setScreenOnWhilePlaying(true);
mp.setDisplay(holder);
mp.prepare();
mp.start();