我有一个播放mp3的混合应用程序,但我不想在资源文件夹中设置所有mp3,我希望用户选择他/她喜欢下载的mp3。
所以问题是......我可以在appview数据文件夹中使用以前在webview中下载的mp3吗?
文件中的内容:///android_assets/index.html:
<html><body>
<audio src="file:///Android/data/com.packagename/previouslydownloaded.mp3">
</body></html>
非常感谢。
答案 0 :(得分:0)
由于Android Lollipop可以在任何地方使用文件,因为WebView已经获得了对content://
方案的全面支持。较旧的Android版本也可以使用(例如,MediaPlayer获得了Uri支持,可以在API 14中播放)。只需创建一个ContentProvider并直接在网页中引用相关内容uris。
<html><body>
<audio src="content://com.example.authority/file/path.mp3">
</body></html>
来自辅助外部存储的两个文件(只能通过Storage Access Framework访问)和通过FileProvider或类似内容公开的应用私有文件都可以通过content://
访问。
请注意,编写ContentProviders是一项有点棘手的业务,您可能希望查看以下问题及其所有答案:Is it possible to use content:// as a source for an <audio> element in a WebView