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動画を操作するのに十分です。

作業中のプロジェクトの例。



All Articles