我正在尝试在Android中使用 HTML5 在 webView 中播放mp4视频,但不幸的是它无法正常工作,所以任何人都可以帮助我,我该怎么办?< / p>
这是我的代码 名为new2.html
的 HTML 文件<video width="365" height="200" src="/sdcard/Download/video.mp4" controls autobuffer></video>
<!--<!DOCTYPE html>
<html>
<body>
<video width="320" height="240" controls autoplay>
<source src="/sdcard/Download/video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</body>
</html>-->
Java 文件是:
public class WebActivity extends Activity {
WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.web_activity);
wv = (WebView) findViewById(R.id.webview);
wv.loadUrl("file:///android_asset/new2.html");
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
// webview.loadUrl("file:///android_asset/new.html");
}
}
XML 文件是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
答案 0 :(得分:1)
您需要通过本地主机调用您的文件 - file:// localhost / - 否则您的手机将无法识别您要求的权限。通过使用没有localhost的浏览器,您正在ping一颗卫星,无法重新进行重新编辑。
您要显示控件,因为它们来自公共html文件夹,但您的来源(视频)却没有。
答案 1 :(得分:1)
从this blog开始,它指出了两个步骤:
This page shows如何做到这一点 - 该页面的摘要如下:
步骤1:在AndroidManifest.xml中声明您的内容提供者:
<provider android:name="MyDataContentProvider"
android:authorities="com.techjini" />
^^^^^^^^^^^ change this
第2步:
创建ContentProvider
并实施openFile
。
您所要做的就是从uri获取真实路径,打开它并返回描述符
URI uri = URI.create("file:///data/data/com.techjini/files/myImage.jpeg");
^^^^^your path to your file
File file = new File(uri);
ParcelFileDescriptor parcel =
ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
您可以使用以下方法查找图像的存储位置:
System.out.println(getFilesDir().getAbsolutePath());
您现在可以加载文件:
myWebView.loadUrl("content://com.techjini/myImage.jpeg");
^^^^^^^^^^^change to same as in manifest
希望有所帮助。
答案 2 :(得分:0)
如果您将“/sdcard/Download/video.mp4”更改为“file:///sdcard/Download/video.mp4”会怎样?我的意思是html部分:
<video width="365" height="200" src="file:///sdcard/Download/video.mp4" controls autobuffer></video>
我无法在自定义网络应用中打开html页面。但是我注意到,如果没有添加“file:///”,视频将无法在我的Android浏览器中播放。 (在我的情况下,通过添加“file:///”,视频开始加载需要一些时间。)
答案 3 :(得分:0)
<video width="365" height="200" src="video.mp4" controls autobuffer></video>
并且video.mp4应该位于您的资源文件夹中,与您放置new2.html的位置相同