WebViewを使用してYouTubeビデオを再生する

Android OSの一部の開発者は、バージョン2.2以前のオペレーティングシステムで、youtubeからビデオを再生する問題に直面した可能性があります。 shouldOverrideUrlLoadingを使用する古いバージョンが既に動作を停止し、新しいソリューションを見つけるのが非常に困難な場合。 この投稿では、いわゆるCustomViewの動的作成に関連するWebViewのいくつかの機能の使用に基づく例を提供します。

何が起こっているかの説明


ビデオ再生の作業を簡素化するために、Android開発者 、必要なすべてのパラメーターとこのストリームを表示するVideoViewを備えたストリーミングプレーヤーの自動作成を既に追加しています。 開発者としては、このすべての富を正しく使用し、正しく処分するだけです。

Videoview

ユーザーがyoutubeのモバイルバージョンを示すWebViewのプレビューをクリックした後:



WebViewは、画面に表示する準備が整った既に実行中のVideoViewを含むWebChromeClientオブジェクトを呼び出します。タスクは、このViewがコンテンツをユーザーに表示できるようにすることです。 したがって、 onShowCustomViewメソッドは、このコンポーネントを取得して処理し、現在のウィジェット階層に追加します。

@ Override <br/>
public void onShowCustomView ( View view, CustomViewCallback callback ) { <br/>
if ( mCustomView ! = null ) { <br/>
callback. onCustomViewHidden ( ) ; <br/>
} else { <br/>
mCustomView = view ; <br/>
mCustomViewCallback = callback ; <br/>
mWebView. setVisibility ( View . GONE ) ; <br/>
mMainContentContainer. addView ( view, CUSTOM_VIEW_LAYOUT_PARAMS ) ; <br/>
} <br/>
}
@ Override <br/>
public void onShowCustomView ( View view, CustomViewCallback callback ) { <br/>
if ( mCustomView ! = null ) { <br/>
callback. onCustomViewHidden ( ) ; <br/>
} else { <br/>
mCustomView = view ; <br/>
mCustomViewCallback = callback ; <br/>
mWebView. setVisibility ( View . GONE ) ; <br/>
mMainContentContainer. addView ( view, CUSTOM_VIEW_LAYOUT_PARAMS ) ; <br/>
} <br/>
}


ただし、現在のビューを変更したため、ビデオの視聴後または[戻る]ボタンをクリックしてサイトの閲覧を続行するには、階層の前の状態に戻す必要があります。これには、 WebChromeClientの別のメソッドonHideCustomViewを使用します。 その中で、VideoViewを閉じ、WebViewの表示を続けます。

@ Override <br/>
public void onHideCustomView ( ) { <br/>
if ( mCustomView ! = null ) { <br/>
mMainContentContainer. removeView ( mCustomView ) ; <br/>
mCustomViewCallback. onCustomViewHidden ( ) ; <br/>
mCustomView = null ; <br/>
mWebView. setVisibility ( View . VISIBLE ) ; <br/>
} <br/>
}
@ Override <br/>
public void onHideCustomView ( ) { <br/>
if ( mCustomView ! = null ) { <br/>
mMainContentContainer. removeView ( mCustomView ) ; <br/>
mCustomViewCallback. onCustomViewHidden ( ) ; <br/>
mCustomView = null ; <br/>
mWebView. setVisibility ( View . VISIBLE ) ; <br/>
} <br/>
}


これらの手順は、Android 2.2でYouTube動画を操作するのに十分です。
作業中のプロジェクトの例。

Source: https://habr.com/ru/post/J130422/


All Articles