首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用webview在基于html5的安卓应用中离线播放mp4视频?

如何使用webview在基于html5的安卓应用中离线播放mp4视频?
EN

Stack Overflow用户
提问于 2015-09-11 16:13:14
回答 1查看 1.4K关注 0票数 3

原始的html文件被用来构建运行没有任何问题的iPhone应用程序。小的嵌入式视频应该会自动启动并无限循环。我在Linux Mint 17.2上使用Android Studio 1.3.2,经过反复试验,并仔细尝试了我在这里找到的一些建议,我成功地构建了一个应用程序(Android 4.4.2),如下所示:

在AndroidManifest.xml中,我添加了硬件加速,并允许访问互联网:

代码语言:javascript
复制
android:hardwareAccelerated="true"
<uses-permission android:name="android.permission.INTERNET" />

该应用程序是使用以下工具构建的:

代码语言:javascript
复制
compileSdkVersion 22
buildToolsVersion "22.0.1"
minSdkVersion 17
targetSdkVersion 22

在MainActivity.java中,我添加了WebChromeClient并启用了JavaScript。

代码语言:javascript
复制
private WebView mWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.setWebChromeClient(new WebChromeClient());

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setMediaPlaybackRequiresUserGesture(false);

    mWebView.loadUrl("file:///android_asset/www/index.html");
}

在index.html文件中,我有以下几次尝试嵌入电影文件。在我复制到不同文件夹的三种情况下,电影都是相同的mp4文件:

代码语言:javascript
复制
<body>
1) Intern mp4, resides in assets/www
  <video id="vid2" width="100%" autoplay loop controls>
    <source src="./mov_bbb.mp4">
  </video>

2) extern SDcard
  <video id="video" width="100%" autoplay loop controls>
     <source src="file:///mnt/sdcard/cmr/mov_bbb.mp4">
  </video>

3) online WWW
  <video id="video" width="100%" autoplay loop controls>
    <source src="http://www.w3schools.com/html/mov_bbb.mp4">
  </video>
</body>

1)尝试加载和播放位于assets/www (与index.html所在位置相同)中的mp4,并且打包在package中不起作用。当我按下播放按钮时,视频框变黑并调整到视频的大小,但它不播放,我得到未知的错误:

代码语言:javascript
复制
W/MediaPlayer﹕ info/warning (1001, 0)
E/MediaPlayer﹕ Error (1,-2147483648)

2)视频自动启动,但不循环。此外,我不希望所有的电影文件都位于外部SD卡中:

代码语言:javascript
复制
E/MediaPlayer﹕ Should have subtitle controller already set
W/MediaPlayer﹕ info/warning (3, 0)

3)在线内容:视频自动开始,但不循环。我不希望应用程序依赖于网络。离线访问是app必不可少的一部分。

代码语言:javascript
复制
I/MediaPlayer﹕ setDataSource(http://www.w3schools.com/html/mov_bbb.mp4)
E/MediaPlayer﹕ Should have subtitle controller already set
W/MediaPlayer﹕ info/warning (3, 0)

有没有使用额外脚本的变通方法,也许可以解决我在构建应用程序时遇到的挑战?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2015-09-11 16:28:07

我想你把定位保存视频改成了sdcard

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32518694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档