在网络视图中获取 html5 视频海报

Get the html5 video poster in webview

我有一个显示视频供用户播放的网络视图,但我看不到海报。 我正在使用以下 webChromeClient:

    myWebView.setWebChromeClient(new WebChromeClient() {
        @Override
        public Bitmap getDefaultVideoPoster() {
            final Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565);
            Canvas canvas = new Canvas(bitmap);
            canvas.drawARGB(255, 255, 255, 255);
            return bitmap;
        }

        public void onShowCustomView (View view, WebChromeClient.CustomViewCallback callback) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("video/*");
            startActivity(intent);
        }

        public void onHideCustomView () {
        }
    });

我只看到白色背景。

你应该return super.getDefaultVideoPoster(),出现白色海报是因为你重写了绘制白色位图

            @Override
        public Bitmap getDefaultVideoPoster() {
            //final Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565);
            //Canvas canvas = new Canvas(bitmap);
            //canvas.drawARGB(255, 255, 255, 255);
            return super.getDefaultVideoPoster();
        }

我的结果:

已编辑:

您可以解决:在 html 文件 <source src="xyz.mp4#t=1" type="video/mp4"> 中的 src 之后添加 #t=1。它将显示第 1 帧作为视频海报。