android-discuss
android-discuss copied to clipboard
WebView chromium 报错大家有解决的吗
1 com.android.webview.chromium.WebViewContentsClientAdapter.getDefaultVideoPoster(WebViewContentsClientAdapter.java:596) 2 org.chromium.android_webview.DefaultVideoPosterRequestHandler$$Lambda$0.run(Unknown Source:2) 3 android.os.Handler.handleCallback(Handler.java:808) 4 android.os.Handler.dispatchMessage(Handler.java:101) 5 android.os.Looper.loop(Looper.java:166) 6 android.app.ActivityThread.main(ActivityThread.java:7425) 7 java.lang.reflect.Method.invoke(Native Method) 8 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 9 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
同问
据说可以 WebView.setWebChromeClient()
public class WebChromeClientWrapper extends WebChromeClient {
private final WebChromeClient src;
private final Context context;
//...
@Nullable
public Bitmap getDefaultVideoPoster() {
Bitmap bitmap = null;
if(src != null){
bitmap = src.getDefaultVideoPoster();
}
//参照WebViewContentsClientAdapter.java的处理
if(bitmap == null){
Bitmap poster = BitmapFactory.decodeResource(
context.getResources(),
R.drawable.ic_play_circle_outline_black_48dp);
bitmap = Bitmap.createBitmap(
poster.getWidth(), poster.getHeight(), poster.getConfig());
bitmap.eraseColor(Color.GRAY);
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(poster, 0f, 0f, null);
}
return bitmap;
}
//...
}