我碰到類似的問題。有我的場景。我使用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;
}
我不知道我的解決方案是否可以解決您的問題,但我希望您受到我的代碼的啓發。祝你好運。
非常感謝您的回答。 :) – ririzplus
不客氣,;-) – SilentKnight
@SilentKnight我有類似的問題,你的答案看起來很有希望。我有一個問題,但是:你作爲'uri'傳遞了什麼? 'Uri.parse(webView.getUrl())'? – tobyUCT