【发布时间】:2012-12-21 02:52:27
【问题描述】:
我正在构建一个带有WebView 的应用程序,该应用程序应该播放视频,该视频保存在本地。奇怪的是,视频播放器无法处理本地视频文件。它确实会播放保存在服务器上的视频。
本地文件(html和视频)保存在文件夹assets/html_test
这是文件。
HTML
<div class="video-container">
<p>Server</p>
<video poster="video/star.png" controls>
<source src="http://broken-links.com/tests/media/BigBuck.m4v" />
</video>
</div>
<div class="video-container">
<p>local</p>
<video poster="video/star.png" controls>
<source src="BigBuck.m4v" />
</video>
</div>
onCreate in Activity
WebView browser = (WebView) findViewById(R.id.browser);
WebSettings webSettings = browser.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON_DEMAND);
webSettings.setAllowFileAccessFromFileURLs(true);
browser.setWebChromeClient(new WebChromeClient());
browser.loadUrl("file:///android_asset/html_test/video.html");
第一个视频有效,第二个无效。我为source 尝试了不同的值,但它们都不适合我:
<source src="BigBuck.m4v" />
<source src="file:///android_asset/html_test/BigBuck.m4v" />
不确定这是否相关,但我一按下播放键,logcat 就会发出这个:
01-07 12:19:18.073: E/MediaPlayer(32542): error (1, -2147483648)
01-07 12:19:18.073: E/MediaPlayer(32542): Error (1,-2147483648)
我不知道这里有什么问题。任何帮助将不胜感激。
【问题讨论】:
-
我认为应该是
file://而不是file:///,请确认一下。 -
这个错误一般是因为你正在播放的文件的格式在Android上不支持。 developer.android.com/guide/appendix/media-formats.html 或者:权限问题?看看这是否有帮助:weston-fl.com/blog/?p=2988
-
@taymless 你可以尝试在你的 html 中使用
<embed>而不是<video>吗? -
@taymless 你能告诉我你是怎么解决你的问题的。我也有同样的问题。我想显示存储在资产文件夹中的视频。请尽快回复
-
@swapniladsure 看看我发布并接受的答案。您必须启用对视频文件的文件访问。我将文件复制到外部存储,包括所有 HTML 资产。这一切都在下面解释......
标签: android html video webview local