【Android】Intentを使ってYouTubeアプリで動画を再生する方法
自作のAndroidアプリから特定のYouTube動画を表示したい場面は少なくありません。そんなときに便利なのが、Intent(インテント)を使ってYouTubeアプリを起動する方法です。本記事では、画面上のテキストをタップするとYouTubeアプリが起動し、指定した動画が再生されるシンプルなサンプルアプリの作成手順を解説します。
手順1:Android Studioで新規プロジェクトを作成する
Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。
手順2:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xml に以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/parent"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/openYoutube"
android:text="Open youtube application"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
このレイアウトでは、画面中央に「Open youtube application」というラベルを持つTextViewを1つ配置しています。ユーザーがこのテキストをタップすると、YouTubeアプリが起動する仕組みです。
手順3:MainActivity.java を実装する
続いて、src/MainActivity.java に以下のコードを記述します。
package com.example.andy.myapplication;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView openYoutube = findViewById(R.id.openYoutube);
openYoutube.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent webIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.youtube.com/watch?v=5X7WWVTrBvM"));
try {
MainActivity.this.startActivity(webIntent);
} catch (ActivityNotFoundException ex) {
}
}
});
}
}
コードのポイント
今回のキーとなる処理は以下の部分です。
Intent webIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.youtube.com/watch?v=5X7WWVTrBvM"));
try {
MainActivity.this.startActivity(webIntent);
} catch (ActivityNotFoundException ex) {
}
Intent.ACTION_VIEW アクションにYouTube動画のURLを渡してIntentを生成し、startActivity() を呼び出すことで、Androidシステムが適切なアプリを自動的に選択して起動します。URLが「https://www.youtube.com/watch?v=〜」形式の場合、端末にYouTubeアプリがインストールされていれば、ブラウザではなくYouTubeアプリ側で動画が開かれます。
また、ActivityNotFoundException をキャッチしているのは、YouTubeアプリも対応するブラウザも存在しない環境でアプリが強制終了(クラッシュ)するのを防ぐための安全策です。例外発生時の処理が必要であれば、catchブロック内にフォールバック処理を追記するとより堅牢になります。
アプリを実行して動作を確認する
それでは実際にアプリを動かしてみましょう。実機のAndroidスマートフォンをパソコンに接続し、Android Studioでプロジェクト内のアクティビティファイルを開いた状態で、ツールバーの「Run」アイコンをクリックします。デバイス選択ダイアログで自分のスマートフォンを選択すると、端末にアプリがインストールされ、次のような初期画面が表示されます。

この初期画面でテキスト部分をタップすると、YouTubeアプリが起動し、指定した動画が再生されます。

まとめ
Intent.ACTION_VIEW にYouTubeのURLをセットして startActivity() を呼ぶだけで、特別なライブラリや複雑な設定なしにYouTubeアプリを起動して動画を再生できます。アプリ内から関連動画や公式チャンネルを紹介したい場合などに、ぜひ活用してみてください。
-
Android・iOSで動画をループ再生する3つの方法【MX Player/VLC/Vloop】
AndroidやiOSで動画をループ再生したいと思ったことはありませんか?お気に入りの動画を繰り返し観たいとき、すべての動画プレイヤーにループ機能が備わっているわけではないため、やり方が分からず戸惑うこともあります。しかし心配はいりません。この記事では、iOSやAndroidで動画をループ再生するための簡単な方法を、手順付きでわかりやすく解説します。 Android・iOSで動画をループ再生する方法 お気に入りの曲や動画クリップが頭から離れず、何度も繰り返し視聴したいという経験は誰にでもあるでしょう。そんなときに役立つのが動画のループ再生機能です。この機能を使えば、どんな動画でも自動的に繰り
-
AndroidでYouTubeアプリがクラッシュ・フリーズする問題を解決する9つの方法
Androidスマートフォンは、数え切れないほどのアプリやゲームが楽しめることから、世界中の多くの人々に愛用されています。その中でも特に人気が高く、ダウンロード数の多いアプリのひとつがYouTubeです。動画の視聴はもちろん、投稿や共有もできるYouTubeは、今や私たちの生活に欠かせない存在となっています。しかし、お気に入りの動画を楽しんでいる最中に突然アプリがクラッシュしたら、非常にストレスですよね。しかも、直し方がわからないとなればなおさらイライラしてしまいます。そこで本記事では、AndroidでYouTubeアプリが正常に動作しない場合の対処法を詳しく解説します。まず知っておきたい:Y