私はビデオを表示したい場所にIonicプロジェクトを持ち、その上にコードバーのコンテンツWebView
があります。私が使用するプラグインで、ビデオ・ビューの上に透明WebView
を持っている:私は、Android上でこれをテストしているandroid transparent WebView on VideoView
FrameLayout containerView = (FrameLayout) cordova.getActivity().findViewById(1);
if (containerView == null) {
containerView = new FrameLayout(cordova.getActivity().getApplicationContext());
containerView.setId(1);
containerView.setBackgroundColor(Color.BLACK);
FrameLayout.LayoutParams containerLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
cordova.getActivity().addContentView(containerView, containerLayoutParams);
videoView = new VideoView(cordova.getActivity());
videoView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
containerView.addView(videoView);
MediaPlayer player = new MediaPlayer();
player.setOnPreparedListener(this);
player.setOnCompletionListener(this);
player.setOnErrorListener(this);
final SurfaceHolder holder = videoView.getHolder();
holder.setKeepScreenOn(true);
holder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
player.setDisplay(holder);
try {
player.prepare();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
player.release();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
});
}
:
webView.getView().setBackgroundColor(0x00000000);
((ViewGroup) webView.getView()).bringToFront();
VideoView
は、このようなFrameLayout
に初期化され、追加されます4.4.2とそれは素晴らしい動作します。私はAndroid 5.1.1でそれをテストし、ビデオ再生中はWebView
は見えません。しかし、もし私がそれを調べて<body>
をホバーすると(画面にはオーバーレイが青色で表示されます)、htmlコンテンツ内の要素が表示されます。また、画面に触れると、コンテンツが突然表示されます。だから、WebView
とのやりとりがないときはレンダリングの問題だと思われますが、触れたり、何らかのトリガーを受け取ったりするとすぐに表示されます。
私はまた、横断歩道を使用してみましたが、それはまだ4.2.2に完全に正常動作しますが、5.1.1でアプリを起動したときのみ動作し、画面も
に触れたときに最初の相互作用の後に、それが唯一の作品<preference name="BackgroundColor" value="0xff000000"/>
を3210に設定しても、動作は変わりません。
編集1: 私はそれでいくつかの透明テキストをdiv要素を追加して、その上に、単純な無限のアニメーションを入れて(ちょうど.9
から1
に不透明度を変更したこと)、およびWebView
内の要素を出来上がりが今表示されました再生時にビデオの上に表示されます。 WebView
のコンテンツが「点滅」することがあるが、うまく機能するため完璧ではない。まだ何の手掛かりがありません
'Color.TRANSPARENT'は' 0x00000000'と同じですが、単に '0'を意味します。私はあなたが 'layout.addview(あなたのwebview)'によって何を意味しているのか分かりません。私はデフォルトのコードバ 'WebView'を使用しています。カスタムコンテンツではなく、メインコンテンツビューにすでに追加されています。これがどう変わるか – Guillaume