android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

WebView chromium 报错大家有解决的吗

Open tianshaokai opened this issue 7 years ago • 2 comments

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)

tianshaokai avatar Jul 02 '18 09:07 tianshaokai

同问

hiluo avatar Jul 31 '18 10:07 hiluo

据说可以 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;
    }
    //...
}

maonanyue avatar Dec 17 '18 09:12 maonanyue