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動画を操作するのに十分です。
作業中のプロジェクトの例。