如何在Android的Webview上播放HTML5视频

3
我正在尝试在Web视图中加载一个包含视频的网页。我能够在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();

            }
        }

    }

};

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


1
请分享您是如何解决自己的问题的,因为我也遇到了同样的情况。 - Hardik Joshi
1
你能在这里发布你的解决方案吗?谢谢。 - Hasmukh
5个回答

2
这对我有用,问题与本地存储的视频文件权限有关。希望能帮到你!
<video width="365" height="200" src="/mnt/SDcard/media/video/abc.mp4" controls autobuffer></video>

1
当我添加了“controls autobuffer”时,我的问题已经消失了。 - a.boussema

2

请阅读以下内容:目前的解决方法是将缩略图链接到视频文件,然后通过该链接在原生Android视频播放器中打开视频。 - Mikko Ohtamaa
cavallo,请更新帖子并分享解决方案,而不要保持沉默。 - Fred Ondieki

0

正如 @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
@Richa Laad,这个答案 https://dev59.com/WlbUa4cB1Zd3GeqPB8pn#20780294 可能会对你有帮助。 - Dhananjay C

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

0

当我遇到这个问题时,是由于压缩类型的原因。对于安卓系统,我必须使用基本配置文件压缩而不是高级配置文件压缩。ffmpeg兼容性中有描述。

我在这里回答了一个类似的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接