【问题标题】:how to play html5 video on a webview android如何在 webview android 上播放 html5 视频
【发布时间】:2024-01-23 08:37:01
【问题描述】:

我正在尝试在其中包含视频的网页视图上加载网页。我可以在 Web 视图上加载网页,但视频没有播放并且可以听到音频。这是我正在加载到 Web 视图的链接。

http://html5videoformatconverter.com/html5-video-tag-example.html

我所做的只是

  public class VideoActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WebView mWebView = (WebView) findViewById(R.id.wvVideo);
    mWebView.setWebChromeClient(chromeClient);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.loadUrl("http://html5videoformatconverter.com/html5-video-tag-example.html");

}
private WebChromeClient chromeClient = new WebChromeClient(){

    @Override
    public void onShowCustomView(View view, CustomViewCallback callback) {
        // TODO Auto-generated method stub
        super.onShowCustomView(view, callback); 
        if(view instanceof FrameLayout){
            FrameLayout frame  = (FrameLayout)view;
            if(frame.getFocusedChild()instanceof VideoView){
            VideoView video =  (VideoView)frame.getFocusedChild();
                frame.removeView(video);
                           video.start();

            }
        }

    }

};

}

请帮我修改我的代码。谢谢

【问题讨论】:

  • 请分享你如何解决你的问题,因为我也面临这个问题。
  • 您可以在这里发布您的解决方案吗?请。

标签: android webview html5-video


【解决方案1】:

Android 浏览器和 WebView 在播放 HTML5 <video> 视频时存在许多已知问题。

Android webview cannot render youtube video embedded via iframe

除非您可以针对 Android 4.0 或优秀的现代固件,否则当前的解决方法是为视频添加缩略图链接,然后此链接在原生 Android 视频播放器中打开视频。

有关 Android 上的 HTML5 视频问题的更多信息,请随时搜索 *.com。

【讨论】:

  • 这一点,请阅读:当前的解决方法是有一个指向视频文件的缩略图链接,然后此链接在原生 Android 视频播放器中打开视频。
  • cavallo 请用解决方案更新帖子,而不是保持沉默
【解决方案2】:

这对我有用,问题与本地存储视频的文件权限有关。希望对您有所帮助!

<video width="365" height="200" src="/mnt/SDcard/media/video/abc.mp4" controls autobuffer></video>

【讨论】:

  • 当我添加“控件自动缓冲”时,我的 Prob 消失了
【解决方案3】:

正如@Mikko 所说,这是一个棘手的领域。

要检查的一件事是您启用了硬件加速。我在关闭它时遇到了与 OP 描述的完全相同的症状。

您可以在应用程序或活动级别启用它:

<application 
    android:icon="@drawable/icon_72" 
    android:logo="@drawable/icon_menu_72"
    android:label="@string/app_name"
    android:hardwareAccelerated="true"
    >

<activity 
    android:name=".MyActivity"
    android:hardwareAccelerated="true"
    >

【讨论】:

  • 我在应用程序级别启用了硬件加速,然后我也面临同样的问题。
  • @ Richa Laad ,这个答案*.com/a/20780294/2210514 可能会对你有所帮助。
【解决方案4】:

当我遇到这个问题时,它是由于压缩类型。对于 android,我必须使用基本配置文件压缩而不是高配置文件压缩。 ffmpeg compatibility 有描述。

我回答了一个类似的问题here

【讨论】:

    【解决方案5】:

    我正在将我的带有 youtube 嵌入的移动网站转换为 android 应用程序......这个项目帮助我摆脱了在 webview 中将视频全屏显示。我所有的问题都解决了。你可以从这里得到一些东西。 https://code.google.com/p/html5webview/

    【讨论】: