Android WebView 视频播放,音频正常,但没有图像 - 浏览器中正常。
创始人
2024-08-19 08:00:05
0次

要解决Android WebView视频播放没有图像的问题,但在浏览器中正常播放音频的问题,可以尝试以下方法:

  1. 更新WebView设置:
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
  1. 添加WebViewClient并覆盖shouldOverrideUrlLoading()方法:
webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
});
  1. 添加WebChromeClient并覆盖onShowCustomView()方法:
webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {
        // 检查是否已经有全屏视图
        if (mCustomView != null) {
            callback.onCustomViewHidden();
            return;
        }
        mCustomView = view;
        mCustomViewCallback = callback;
        mOriginalSystemUiVisibility = getWindow().getDecorView().getSystemUiVisibility();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        mCustomViewContainer.addView(mCustomView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        mCustomViewContainer.setVisibility(View.VISIBLE);
    }
});
  1. 在Activity的onBackPressed()方法中添加以下代码:
@Override
public void onBackPressed() {
    if (mCustomView != null) {
        onHideCustomView();
    } else if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

private void onHideCustomView() {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    getWindow().getDecorView().setSystemUiVisibility(mOriginalSystemUiVisibility);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    mCustomViewContainer.setVisibility(View.GONE);
    mCustomViewCallback.onCustomViewHidden();
    mCustomView = null;
}

请确保在AndroidManifest.xml文件中添加了Internet权限:


这些方法应该能够解决Android WebView视频播放没有图像的问题。如果问题仍然存在,可能需要检查视频源是否适配WebView,并确保WebView版本较新。

相关内容

热门资讯

重大通报透视!WPK靠谱,德普... 德普之星透视AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断网...
2分钟细说开挂!wepoker... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
最新技巧透视挂!poker辅助... 很多人使用云端 AI 时,都担心poker辅助器免费安装、内部资料上传带来隐私风险。这款本地运行的 ...
玩家必看科普辅助器!wepok... 玩家必看科普辅助器!wepoker能不能透视,WPK透视方法教程(好像是有辅助器)AI 智能体黑科技...
发现玩家辅助挂!wepoker... 本地部署 AI 黑科技工具迎来新版本,不用上传文件到云端就能完成wepoker透视挂底牌解析、 AI...
总算了解!透视挂!wepoke... 总算了解!透视挂!wepoker辅助透视,德扑之星辅助软件安装(一向是有透视挂)AI 智能体黑科技再...
玩家必备教程开挂!德扑之星透视... 德扑之星透视AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断网...
我来分享辅助器!wepoker... 您好:wepoker免费钻石这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
曝光教程透视挂!wepoker... 本地部署 AI 黑科技工具迎来新版本,不用上传文件到云端就能完成wepoker轻量版透视解析、 AI...
一分钟揭秘开挂!微扑克透视脚本... 您好:微扑克透视脚本这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...