YouTubePlayer

public interface
YouTubePlayer
com.google.android.youtube.player.YouTubePlayer

概要

YouTubePlayer は、YouTube 動画の読み込み、再生、制御を実行するメソッドを提供します。このクラスのインスタンスは、YouTubePlayerFragmentYouTubePlayerView などの YouTubePlayer.Providerinitialize を呼び出して取得します。

loadVideo(String)cuePlaylist(String) などのメソッドが必要とする動画および再生リストの ID は、YouTube Data API によって提供されます。この API の詳細については、https://developers.google.com/youtube/ をご覧ください。

YouTubePlayer は状態保存をサポートしています。これは、プレーヤーの YouTubePlayer.Provider によって自動的に管理されます。保存される状態は、読み込まれた動画、現在の再生位置、現在のYouTubePlayer.PlayerStyle や全画面制御フラグといったプレーヤー設定などです。この状態にはプレーヤーで設定されたリスナーは含まれないため、プレーヤーの再作成後にもう一度設定する必要があります。

メソッドは、YouTubePlayer オブジェクトで UI スレッドからのみ呼び出す必要があります。

まとめ

ネストされたクラス
enum YouTubePlayer.ErrorReason YouTubePlayer で発生したエラーの理由を説明します。
interface YouTubePlayer.OnFullscreenListener ユーザーによる全画面ボタンのクリックまたは setFullscreen(boolean) の呼び出しによってプレーヤーの全画面表示がオンまたはオフに切り替えられた場合に呼び出されるコールバックのインターフェース定義です。
interface YouTubePlayer.OnInitializedListener プレーヤーの初期化に成功または失敗した場合に呼び出されるコールバックのインターフェース定義です。
interface YouTubePlayer.PlaybackEventListener 動画再生イベントが発生した場合に呼び出されるコールバックのインターフェース定義です。
interface YouTubePlayer.PlayerStateChangeListener ハイレベルなプレーヤーの状態が変化した場合に呼び出されるコールバックのインターフェース定義です。
enum YouTubePlayer.PlayerStyle プレーヤーで使用できる各種スタイルです。
interface YouTubePlayer.PlaylistEventListener 再生リストに関連するイベントが発生した場合に呼び出されるコールバックのインターフェース定義です。
interface YouTubePlayer.Provider このインターフェースを実装するクラスであり、YouTubePlayer インスタンスを提供できます。
定数
int FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE setFullscreenControlFlags(int) のフラグです。端末が横向きになった場合は、自動的にプレーヤーを全画面にします。
int FULLSCREEN_FLAG_CONTROL_ORIENTATION setFullscreenControlFlags(int) のフラグです。向きの自動制御を有効にします。
int FULLSCREEN_FLAG_CONTROL_SYSTEM_UI setFullscreenControlFlags(int) のフラグです。システム UI の自動制御を有効にします。
int FULLSCREEN_FLAG_CUSTOM_LAYOUT setFullscreenControlFlags(int) のフラグです。デフォルトの全画面レイアウト ハンドラを無効にして、全画面レイアウトへの移行を手動で制御できるようにします。
public メソッド
abstract void addFullscreenControlFlag(int controlFlag)
setFullscreenControlFlags(int) の派生形で、既に設定されているフラグを変更せず、指定されたフラグを現在設定されているフラグに追加します。
abstract void cuePlaylist(String playlistId)
指定された再生リストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。
abstract void cuePlaylist(String playlistId, int startIndex, int timeMillis)
指定された再生リストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。
abstract void cueVideo(String videoId)
指定された動画のサムネイルを読み込み、プレーヤーがその動画を再生する準備を行いますが、play() が呼び出されるまで動画ストリームをダウンロードしません。
abstract void cueVideo(String videoId, int timeMillis)
指定された動画のサムネイルを読み込み、プレーヤーがその動画を再生する準備を行いますが、play() が呼び出されるまで動画ストリームをダウンロードしません。
abstract void cueVideos(List<String> videoIds)
動画のリストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。
abstract void cueVideos(List<String> videoIds, int startIndex, int timeMillis)
動画のリストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。
abstract int getCurrentTimeMillis()
開始からの相対による再生中の動画の現在の経過時間を取得します。
abstract int getDurationMillis()
現在読み込まれている動画の再生時間を取得します。
abstract int getFullscreenControlFlags()
現在設定されている全画面制御フラグを取得します。
abstract boolean hasNext()
現在読み込まれている再生リストに 1 つ後の動画があるかどうかを特定します。
abstract boolean hasPrevious()
現在読み込まれている再生リストに 1 つ前の動画があるかどうかを特定します。
abstract boolean isPlaying()
プレーヤーが現在再生中かどうかを特定します。
abstract void loadPlaylist(String playlistId)
指定された再生リストを読み込んで再生します。
abstract void loadPlaylist(String playlistId, int startIndex, int timeMillis)
指定された再生リストを読み込んで再生します。
abstract void loadVideo(String videoId)
指定された動画を読み込んで再生します。
abstract void loadVideo(String videoId, int timeMillis)
指定された動画を読み込んで再生します。
abstract void loadVideos(List<String> videoIds, int startIndex, int timeMillis)
動画のリストを読み込んで再生します。
abstract void loadVideos(List<String> videoIds)
動画のリストを読み込んで再生します。
abstract void next()
読み込まれている再生リストで 1 つ後の動画を再生します。
abstract void pause()
現在再生中の動画を一時停止します。
abstract void play()
現在キューに入っている動画/読み込まれている動画の再生を開始します。
abstract void previous()
読み込まれている再生リストで 1 つ前の動画を再生します。
abstract void release()
読み込みまたは動画再生を停止し、この YouTubePlayer によって使用されているシステム リソースを解放します。
abstract void seekRelativeMillis(int milliSeconds)
指定された秒数だけ、前後にシークを行います。
abstract void seekToMillis(int milliSeconds)
動画の指定された時間までシークします。
abstract void setFullscreen(boolean fullscreen)
全画面にレイアウトされていることをプレーヤーに通知します。
abstract void setFullscreenControlFlags(int controlFlags)
全画面モードに切り替えられている場合の自動動作を制御します。
abstract void setManageAudioFocus(boolean manage)
再生ライフサイクルの一部として、プレーヤーがオーディオ フォーカスを処理するかどうかを指定します。
abstract void setOnFullscreenListener(YouTubePlayer.OnFullscreenListener listener)
abstract void setPlaybackEventListener(YouTubePlayer.PlaybackEventListener listener)
abstract void setPlayerStateChangeListener(YouTubePlayer.PlayerStateChangeListener listener)
abstract void setPlayerStyle(YouTubePlayer.PlayerStyle style)
プレーヤーの現在のスタイルを設定します。ユーザーがプレーヤーを制御できるレベルに影響します。
abstract void setPlaylistEventListener(YouTubePlayer.PlaylistEventListener listener)
abstract void setShowFullscreenButton(boolean show)
プレーヤーのコントロールで、全画面ボタンを表示または非表示にします。

定数

public static final int FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE

setFullscreenControlFlags(int) のフラグです。端末が横向きになった場合は常に自動的にプレーヤーを全画面にします。このフラグは、アクティビティが縦向きでロックされている(そして、マニフェストでそのように指定されている)場合のみ設定する必要があります。

このフラグは、アクティビティに対して横向きのレイアウトが用意されておらず、全画面での動画視聴に対してのみ横向きを有効にしたい場合に便利です。

このフラグを設定すると、ユーザーが端末を横向きにした場合(Activity.setRequestedOrientation(int) を使用)は常にアクティビティの画面の向きが横向きに切り替わります。全画面を終了すると、要求された画面の向きは元の値に戻ります。

このフラグを設定する場合は、FULLSCREEN_FLAG_CONTROL_ORIENTATION も設定する必要があります。

定数値: 4 (0x00000004)

public static final int FULLSCREEN_FLAG_CONTROL_ORIENTATION

setFullscreenControlFlags(int) のフラグです。向きの自動制御を有効にします。

全画面になった場合は強制的に横向きに設定し、全画面を終了した場合は元の向きに戻すという動作を実行します。これを実装することにより、端末を縦向きに戻した場合は自動的に全画面を終了するという動作も実行されます。一般的に、アプリケーションが横向きでロックされている場合や縦向きで全画面にする必要がある場合を除き、このフラグを設定する必要があります。

定数値: 1 (0x00000001)

public static final int FULLSCREEN_FLAG_CONTROL_SYSTEM_UI

setFullscreenControlFlags(int) のフラグです。システム UI の自動制御を有効にします。

このフラグを設定すると、ユーザーの操作が予期されない場合はシステム UI が非表示になり、ユーザーが端末を操作すると常にプレーヤーのコントロールと同時に再表示されます。

システム UI とは、ステータス バー(表示している場合)や、端末に表示されるその他のバー(ナビゲーション バー、システム バーなど)です。

アプリケーションで ActionBar を表示する場合は、ユーザーの操作に合わせてプレーヤーのコントロールおよびその他のシステム UI と同時に表示または非表示になります(アクションバーが、Window#FEATURE_ACTION_BAR_OVERLAY を使用してオーバーレイとして作成されている場合)。そうでない場合、全画面セッションの間は非表示になります。

一般的に、システム UI を手動で制御する具体的な必要性がない限り、このフラグを設定する必要があります。

定数値: 2 (0x00000002)

public static final int FULLSCREEN_FLAG_CUSTOM_LAYOUT

setFullscreenControlFlags(int) のフラグです。デフォルトの全画面レイアウト ハンドラを無効にして、全画面レイアウトへの移行を手動で制御できるようにします。カスタムの全画面レイアウトを実装できるだけでなく、デフォルトの全画面動作で発生する再バッファを回避できるという利点もあります。

ユーザーによる全画面ボタンのクリックまたは setFullscreen(boolean) の呼び出しによって全画面に切り替えられた場合に使用する全画面レイアウトがある場合は、このフラグを使用します。

デフォルトの全画面動作では、動画プレーヤーが全画面ダイアログにレイアウトされます。ただし、このデフォルト動作では、全画面に切り替えた場合または元に戻った場合に、動画を再バッファする必要があります。この動作を回避するため、このフラグの設定による全画面イベントの処理が推奨されます。

カスタムの全画面動作を実装するアプリケーションでは、次の 2 点を確実に処理する必要があります。

  • onFullscreen(boolean) が呼び出された場合は、必ずアプリケーションのウィンドウの中で有効なスペースの全体をプレーヤーのビューが占有すること。
  • 横向きに変化した場合に、アクティビティが再作成されないこと。縦向きをサポートするアクティビティに対してこの動作を実現するには、アクティビティによって一定の設定変更(orientationkeyboardHiddenscreenSize など)を処理できるようにアプリケーションのマニフェストで指定する必要があります。

このフラグは、向きおよびシステム UI の制御には影響しません。FULLSCREEN_FLAG_CONTROL_ORIENTATION および FULLSCREEN_FLAG_CONTROL_SYSTEM_UI が設定されている場合は、このフラグを設定して手動でレイアウトを制御しても、引き続き YouTubePlayer が向きとシステム UI の両方を自動的に制御します。

定数値: 8 (0x00000008)

public メソッド

public abstract void addFullscreenControlFlag (int controlFlag)

setFullscreenControlFlags(int) の派生形で、既に設定されているフラグを変更せず、指定されたフラグを現在設定されているフラグに追加します。setFullscreenControlFlags(getFullscreenControlFlags() | controlFlag) と同じです。

パラメータ
controlFlag 設定するフラグです。FULLSCREEN_FLAG_CONTROL_ORIENTATIONFULLSCREEN_FLAG_CONTROL_SYSTEM_UIFULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPEFULLSCREEN_FLAG_CUSTOM_LAYOUT のいずれかになります。

public abstract void cuePlaylist (String playlistId)

指定された再生リストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。

パラメータ
playlistId キューに入れられる再生リストの ID です。YouTube Data API から返されます。

public abstract void cuePlaylist (String playlistId, int startIndex, int timeMillis)

指定された再生リストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。

ユーザーが再生ボタンを押したり play() が呼び出されたりした場合は、再生リストの中で指定されたインデックスを持つ動画が再生されます。動画の再生は、指定された時間から開始されます。

パラメータ
playlistId キューに入れられる再生リストの ID です。YouTube Data API から返されます。
startIndex キューに入れられる最初の動画の再生リストのインデックスです。
timeMillis キューに入れられた最初の動画の再生開始位置です。単位はミリ秒です。

public abstract void cueVideo (String videoId)

指定された動画のサムネイルを読み込み、プレーヤーがその動画を再生する準備を行いますが、play() が呼び出されるまで動画ストリームをダウンロードしません。

パラメータ
videoId キューに入れられる動画の ID です。YouTube Data API から返されます。

public abstract void cueVideo (String videoId, int timeMillis)

指定された動画のサムネイルを読み込み、プレーヤーがその動画を再生する準備を行いますが、play() が呼び出されるまで動画ストリームをダウンロードしません。

ユーザーが再生ボタンを押したり play() が呼び出されたりした場合は、動画の指定された時間から再生が開始されます。

パラメータ
videoId キューに入れられる動画の ID です。YouTube Data API から返されます。
timeMillis 動画の再生開始位置です。単位はミリ秒です。

public abstract void cueVideos (List<String> videoIds)

動画のリストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。

パラメータ
videoIds キューに入れられる YouTube 動画 ID のリストです。YouTube Data API から返されます。

public abstract void cueVideos (List<String> videoIds, int startIndex, int timeMillis)

動画のリストをキューに入れますが、play() または seekToMillis(int) が呼び出されるまで動画ストリームをダウンロードしたり再生を開始したりしません。

ユーザーが再生ボタンを押したり play() が呼び出されたりすると、指定されたインデックスを持つ動画が再生されます。動画の再生は、指定された時間から開始されます。

パラメータ
videoIds キューに入れられる YouTube 動画 ID のリストです。YouTube Data API から返されます。
startIndex キューに入れられる最初の動画のリストのインデックスです。
timeMillis キューに入れられた最初の動画の再生開始位置です。単位はミリ秒です。

public abstract int getCurrentTimeMillis ()

開始からの相対による再生中の動画の現在の経過時間を取得します。

返り値
  • 開始からの相対による再生中の動画の現在の経過時間です。単位はミリ秒です。動画の読み込みが完了するまで、正しい結果は返されません。
関連項目

public abstract int getDurationMillis ()

現在読み込まれている動画の再生時間を取得します。

返り値
  • 現在読み込まれている動画の経過時間(ミリ秒単位)です。動画の読み込みが完了するまで正しい結果は返されず、動画の再生が開始されると、より正確な値に変化する場合があります。

public abstract int getFullscreenControlFlags ()

現在設定されている全画面制御フラグを取得します。

返り値

public abstract boolean hasNext ()

現在読み込まれている再生リストに 1 つ後の動画があるかどうかを特定します。

返り値
  • 読み込まれている再生リストに 1 つ後の動画がある場合は true を返し、そうでない場合は false を返します。

public abstract boolean hasPrevious ()

現在読み込まれている再生リストに 1 つ前の動画があるかどうかを特定します。

返り値
  • 読み込まれている再生リストに 1 つ前の動画がある場合は true を返し、そうでない場合は false を返します。

public abstract boolean isPlaying ()

プレーヤーが現在再生中かどうかを特定します。

返り値
  • プレーヤーが現在再生中の場合、または再生状態のままバッファ中の場合は true を返し、そうでない場合は false を返します。

public abstract void loadPlaylist (String playlistId)

指定された再生リストを読み込んで再生します。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
playlistId 再生する再生リストの ID です。YouTube Data API から返されます。

public abstract void loadPlaylist (String playlistId, int startIndex, int timeMillis)

指定された再生リストを読み込んで再生します。再生は、指定されたインデックスを持つ動画から開始されます。また、指定された時間から開始されます。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
playlistId 再生する再生リストの ID です。YouTube Data API から返されます。
startIndex 再生を開始する再生リストのインデックスです。
timeMillis 最初に再生される動画の再生開始位置です。単位はミリ秒です。

public abstract void loadVideo (String videoId)

指定された動画を読み込んで再生します。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
videoId 再生する動画の ID です。YouTube Data API から返されます。

public abstract void loadVideo (String videoId, int timeMillis)

指定された動画を読み込んで再生します。動画の再生は、指定された時間から開始されます。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
videoId 再生する動画の ID です。YouTube Data API から返されます。
timeMillis 動画の再生開始位置です。単位はミリ秒です。

public abstract void loadVideos (List<String> videoIds, int startIndex, int timeMillis)

動画のリストを読み込んで再生します。再生は、指定されたインデックスを持つ動画から開始されます。また、指定された時間から開始されます。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
videoIds 再生する YouTube 動画 ID のリストです。YouTube Data API から返されます。
startIndex 最初に再生する動画のリストのインデックスです。
timeMillis 最初に再生される動画の再生開始位置です。単位はミリ秒です。

public abstract void loadVideos (List<String> videoIds)

動画のリストを読み込んで再生します。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

パラメータ
videoIds 再生する YouTube 動画 ID のリストです。YouTube Data API から返されます。

public abstract void next ()

読み込まれている再生リストで 1 つ後の動画を再生します。

最初の呼び出しが完了(onLoaded(String) によって示されます)する前に next() または previous() をもう一度呼び出すと、後で行った呼び出しが無視される場合があります。

スロー
NoSuchElementException 再生リストの最後でメソッドが呼び出された場合は、この例外がスローされます。

public abstract void pause ()

再生中の動画を一時停止します。

public abstract void play ()

現在キューに入れられている/読み込まれている動画の再生を開始します。

注記: YouTube では、ネイティブの再生ボタンを押して開始された再生だけをカウントします。

public abstract void previous ()

読み込まれている再生リストで 1 つ前の動画を再生します。

最初の呼び出しが完了(onLoaded(String) によって示されます)する前に next() または previous() をもう一度呼び出すと、後で行った呼び出しが無視される場合があります。

スロー
NoSuchElementException 再生リストの最初でメソッドが呼び出された場合は、この例外がスローされます。

public abstract void release ()

読み込みまたは動画再生を停止し、YouTubePlayer によって使用されているシステム リソースを解放します。

このメソッドを呼び出した後は、その YouTubePlayer を使用した操作を実行できなくなります。再生を再度有効にするには、新しいインスタンスを作成する必要があります。

public abstract void seekRelativeMillis (int milliSeconds)

指定された秒数だけ、前後にシークを行います。

この関数が呼び出されたときにプレーヤーが一時停止または停止していた場合、プレーヤーの状態はそのまま維持されますが、再生を再開すると、シークされた位置から動画の再生が開始されます。

パラメータ
milliSeconds シークする時間です(ミリ秒単位)。正の値の場合は前方向に、負の値の場合は後方向に実行します。

public abstract void seekToMillis (int milliSeconds)

動画の指定された時間までシークします。

この関数が呼び出されたときにプレーヤーが一時停止または停止していた場合、プレーヤーの状態はそのまま維持されますが、再生を再開すると、シークされた位置から動画の再生が開始されます。

パラメータ
milliSeconds シークする時間です。単位はミリ秒です。

public abstract void setFullscreen (boolean fullscreen)

全画面にレイアウトされていることをプレーヤーに通知します。 この関数を呼び出すと、プレーヤーのコントロールの外観に影響を与える場合があります。たとえば、全画面に移行したり全画面を終了したりするオプションが表示されたり、現在のプレーヤーのサイズにきちんと収まるようにレイアウトが変更されたりします。 注記: この関数を呼び出すと、登録されている YouTubePlayer.OnFullscreenListener によって onFullscreen(boolean) イベントが発生します。

パラメータ
fullscreen プレーヤーが全画面の場合は true、そうでない場合は false です。

public abstract void setFullscreenControlFlags (int controlFlags)

全画面モードに切り替えられた場合の自動動作を制御します。

このメソッドを使用すると、ライブラリによって自動化できる全画面動作の各部を有効または無効にすることができます。たとえば、画面の向きの制御、全画面イベント発生時のシステム UI の表示/非表示、デフォルトの全画面レイアウトなどが挙げられます。設定されているデフォルトのフラグは、FULLSCREEN_FLAG_CONTROL_SYSTEM_UI および FULLSCREEN_FLAG_CONTROL_ORIENTATION です。

パラメータ
controlFlags FULLSCREEN_FLAG_CONTROL_ORIENTATIONFULLSCREEN_FLAG_CONTROL_SYSTEM_UIFULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE、 および FULLSCREEN_FLAG_CUSTOM_LAYOUT のビット単位の論理和(bitwise-or)です。値が 0 の場合は、すべての自動動作が無効になります。

public abstract void setManageAudioFocus (boolean manage)

プレーヤーが、再生ライフサイクルの一部としてオーディオ フォーカスを処理するかどうかを指定します。

true の場合、再生の開始および終了時に、プレーヤーはオーディオ フォーカスの要求および破棄を適宜実行します。また、オーディオ フォーカスを失った場合は再生を一時停止します。ダックした場合、プレーヤーは音量を下げます。

オーディオ フォーカスを処理する場合、オーディオ出力の変化によってノイズが多くなると、必要に応じてプレーヤーが一時停止になります(AudioManager.ACTION_AUDIO_BECOMING_NOISY を参照)。

デフォルト値は true です。

パラメータ
manage オーディオ フォーカスの自動処理を有効にするには true、無効にするには false に設定します。

public abstract void setOnFullscreenListener (YouTubePlayer.OnFullscreenListener listener)

パラメータ
listener 全画面の切り替えを通知するリスナーです。

public abstract void setPlaybackEventListener (YouTubePlayer.PlaybackEventListener listener)

パラメータ
listener 登録するリスナーです。以前のリスナーの登録を解除する場合は null に設定します。

public abstract void setPlayerStateChangeListener (YouTubePlayer.PlayerStateChangeListener listener)

パラメータ
listener 登録するリスナーです。以前のリスナーの登録を解除する場合は null に設定します。

public abstract void setPlayerStyle (YouTubePlayer.PlayerStyle style)

プレーヤーの現在のスタイルを設定します。ユーザーがプレーヤーを制御できるレベルに影響します。

パラメータ
style 選択した YouTubePlayer.PlayerStyle です。デフォルトのスタイルは DEFAULT です。

public abstract void setPlaylistEventListener (YouTubePlayer.PlaylistEventListener listener)

パラメータ
listener 登録するリスナーです。以前のリスナーの登録を解除する場合は null に設定します。

public abstract void setShowFullscreenButton (boolean show)

プレーヤーのコントロールで、全画面ボタンを表示または非表示にします。デフォルトでは、全画面ボタンが表示されます。このボタンを使用することで、ユーザーは全画面モードと非全画面モードを切り替えることができます。このメソッドを使用すると、動画を全画面でのみ表示する場合など、必要に応じて全画面ボタンを非表示にすることができます。

注記: このボタンをサポートしているのは、DEFAULT のプレーヤー スタイルだけです。他のプレーヤー スタイルでは、このメソッドを使用しても無効です。

パラメータ
show 全画面ボタンを表示する場合は true に、非表示にする場合は false に設定します。