私が達成しようとしているのは、埋め込まれたiframe YouTubeビデオがWebView
あり、ユーザーがビデオの再生を開始してからフルスクリーンボタンをクリックしたときです.httpsDialog
のようなもので提案されているのではなく、フルスクリーンで表示したい://code.google.com/p/html5webview/source/browse/trunk/HTML5WebView/src/org/itri/html5webview/HTML5WebView.java
WebView
との両方でビデオを再生していDialog
ますが、全画面ダイアログにプレーヤー コントロールがありません。以下は、ダイアログで再生するためにこれまでにハッキングされたコードです。
webView.setWebChromeClient(new WebChromeClient() {
View mVideoProgressView;
Bitmap mDefaultVideoPoster;
Dialog fullScreenDialog;
WebChromeClient.CustomViewCallback mCustomViewCallback;
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (view instanceof FrameLayout) {
FrameLayout frameLayout = (FrameLayout) view;
mCustomViewCallback = callback;
fullScreenDialog = new Dialog(DemoActivity.this, R.style.full_screen_dialog);
// fullScreenDialog = new Dialog(DemoActivity.this, R.style.Dialog_Fullscreen);
LinearLayout linearLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.full_screen_video_view, null);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER;
SurfaceView surfaceView = (SurfaceView)frameLayout.getFocusedChild();
surfaceView.bringToFront();
surfaceView.setZOrderMediaOverlay(true);
surfaceView.setZOrderOnTop(true);
surfaceView.setLayoutParams(params);
// frameLayout.removeAllViews();
// linearLayout.addView(surfaceView);
// fullScreenDialog.setContentView(view, params);
frameLayout.removeAllViews();
fullScreenDialog.setContentView(surfaceView);
fullScreenDialog.show();
}
}
@Override
public void onHideCustomView() {
if (fullScreenDialog != null && fullScreenDialog.isShowing()) {
fullScreenDialog.dismiss();
}
if (mCustomViewCallback != null) {
mCustomViewCallback.onCustomViewHidden();
mCustomViewCallback = null;
}
}
@Override
public Bitmap getDefaultVideoPoster() {
if (mDefaultVideoPoster == null) {
mDefaultVideoPoster = BitmapFactory.decodeResource(getResources(), R.drawable.default_video_poster);
}
return mDefaultVideoPoster;
}
@Override
public View getVideoLoadingProgressView() {
if (mVideoProgressView == null) {
LayoutInflater inflater = getLayoutInflater();
mVideoProgressView = inflater.inflate(R.layout.video_loading_progress, null);
}
return mVideoProgressView;
}
});
私の full_screen_dialog スタイルは単純です:
<style name="full_screen_dialog">
<!--<item name="android:windowFrame">@null</item>-->
<!--<item name="android:windowIsFloating">true</item>-->
<!--<item name="android:windowContentOverlay">@null</item>-->
<!--<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>-->
<!--<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>-->
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
</style>
設定では、WebView
JavaScript とプラグインが有効になっています。
この投稿に類似した質問が多数寄せられていますが、ビデオを全画面ダイアログで開こうとしている質問はありません。どんな助けでも大歓迎です!