在webview上捕捉youtube电影的android

时间:2015-04-21 09:16:11

标签: android webview youtube capture

活动中有ImageViewscreenCapture按钮以及WebView

在WebView上加载“http://youtube.com”。

您可以看到YouTube页面并点击电影。

电影将以html播放。

点击按钮进行截屏。

    View root = webView.getRootView();
    root.setDrawingCacheEnabled(true);
    bmp = Bitmap.createBitmap(root.getDrawingCache());
    root.setDrawingCacheEnabled(false);
    imageView.setImageBitmap(bmp);

将捕获的图像设置为ImageView。

但是没有关于图像的电影。只是黑色区域。

为什么无法拍摄电影?

如何在WebView上捕捉电影?

请帮帮我。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。有我的场景。我使用WebView加载网页。在HTML5中写入的网页中,有一个video来播放视频。我想捕捉video部分内容。那么,有我的代码:
初始化WebView

String url = ...; 
VideoView vv;
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebChromeClient(chromeClient);
mWebView.setWebViewClient(wvClient);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.loadUrl(url);


覆盖WebChromeClient

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
    super.onShowCustomView(view, callback);
    if (view instanceof FrameLayout){
        FrameLayout frame = (FrameLayout) view;
        if (frame.getFocusedChild() instanceof VideoView){
            vv = (VideoView) frame.getFocusedChild();
        }
     }
}


然后,有Capture()方法:

public Bitmap capture(VideoView vv){
     MediaMetadataRetriever rev = new MediaMetadataRetriever();
     rev.setDataSource(mContext, Uri);//Uri is the Content URI of the data you want to play, well, call this method before the rest of the methods in this class. This method may be time-consuming.; 
     Bitmap bitmap = rev.getFrameAtTime(vv.getCurrentPosition() * 1000,
            MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
    return bitmap;
}

我不知道我的解决方案是否可以解决您的问题,但我希望您受到我的代码的启发。祝你好运。