2

私が達成しようとしているのは、埋め込まれた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>

設定では、WebViewJavaScript とプラグインが有効になっています。

この投稿に類似した質問が多数寄せられていますが、ビデオを全画面ダイアログで開こうとしている質問はありません。どんな助けでも大歓迎です!

4

0 に答える 0