【发布时间】:2011-12-20 16:14:11
【问题描述】:
我创建了一个 ContentProvider。它在我的 assets/ 目录中导出文件。我正在使用 content:// url 来访问 WebView 中的导出内容。
以下 HTML 按预期工作:
<img src="content://<provider-name>/test.jpg">
我正在尝试将内容提供程序用于 mp3 音频文件:
<div id='player'></div>
<script>
url = "content://<provider-name>/test.mp3";
var audio = document.createElement('audio');
audio.src = url;
audio.controls = "controls";
document.getElementById("player").appendChild(audio);
</script>
我收到以下错误消息。
E/MediaPlayer(24120): Unable to to create media player
E/HTML5Audio(24120): couldn't load the resource: content://.../test.mp3 exc: java.io.IOException: setDataSource failed.: status=0x80000000
我尝试了 Android SDK 8 和 10,但没有成功。我在日志中没有看到对我的 ContentProvider 的任何访问。看起来在 WebView 中无法从音频标签访问内容。这似乎很奇怪,因为以下代码按预期工作:
MediaPlayer player = MediaPlayer.create(this,
Uri.parse("content://<provider-name>/test.mp3")
);
player.start();
如何在 WebView 中播放来自 ContentProvider 的音频文件?
【问题讨论】:
-
漫步其他答案,我认为这不会有帮助,但是尝试将
uses-permission android:name="android.permission.INTERNET" />添加到您的清单中呢?只是一个共同的答案。我会看更多。 -
也许这可能会有所帮助。 helpmeco.de/2012/2/…
-
@SmartLemon:不,这就是我迄今为止所做的。同样,作为dividuum,图像加载正常,JS运行良好:只是音频资源加载失败。