Я создал ContentProvider. Он экспортирует файлы в моем каталоге assets/. Я использую content://urls для доступа к экспортированному контенту в 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();
Как воспроизводить аудиофайлы из ContentProvider в WebView?