用HTML5 写的项目用 hbuilder 打包成 Android 的 APP,安装在平板上,想调用平板视频文件夹里面的视频,播放视频的Src路径怎么写?
平板里面的视频,查看属性,显示路径为/storage/emulated/0/Movies/1.mp4。按照这个路径写进去,视频无法播放!
![](https://profile-avatar.csdnimg.cn/8cc2b064e09d4289b7e8c4858adf41bb_weixin_70435769.jpg!4)
HTML5 写的项目用 hbuilder 打包成 Android 的 APP
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在HBuilder中,使用HTML5和JavaScript开发的项目打包成Android App后,访问本地文件系统中的视频需要通过Webview的File API或者原生API进行权限申请和文件路径处理。由于浏览器的安全策略限制,直接使用
file:///
协议可能无法加载外部存储设备(如SD卡)上的文件。针对您的问题,尝试以下解决方案:
-
获取读取外部存储权限: 在manifest.json文件中配置应用权限,确保APP具有读取外部存储的权限:
"permissions": [ "android.permission.READ_EXTERNAL_STORAGE" ]
-
使用uni-app提供的API: 如果你使用的是uni-app框架来构建你的项目,可以利用它封装好的API来读取本地文件:
uni.chooseVideo({ sourceType: ['album', 'camera'], // 来源可以是相册或相机 success: function(res) { var videoSrc = res.tempFilePath; // 获取到选择的视频临时路径 // 使用video标签播放视频 var videoElement = document.getElementById('your-video-id'); videoElement.src = videoSrc; videoElement.play(); } });
但如果你想直接指定平板视频文件夹内的某个视频,请参考uni-app的其他文档了解如何访问特定路径下的文件。
-
调用原生模块读取文件并返回给前端: 若需直接访问固定路径的视频,可能需要编写原生插件,并通过JSBridge将文件路径转换为可被WebView加载的资源路径。
-
尝试Content Provider方式: Android系统推荐使用Content Provider来访问媒体文件,而不是直接使用文件路径。不过这种方式通常涉及到原生代码部分,你需要创建一个URI来指向该视频文件。
假设你已经拥有该文件的content Uri,可能是类似
content://media/external/video/media/XXX
的形式,那么理论上可以在WebView中使用这个Uri作为src属性值来加载视频。但在实际操作中,可能需要额外处理才能让WebView支持这种加载方式。
请注意,对于直接访问
/storage/emulated/0/Movies/1.mp4
这样的绝对路径,常规Webview并不支持。务必遵循所使用的跨平台框架提供的规范和方法来访问本地资源。如果确实需要按照绝对路径播放,请查阅HBuilder、uni-app或对应平台的相关文档及API以获取更准确的帮助。解决 无用评论 打赏 举报-
悬赏问题
- ¥15 oracle数据库查询语句问题
- ¥15 有没有c++绘制算法的佬们吗救孩一下
- ¥15 android 蓝牙闪退
- ¥15 绝缘子污秽comsol仿真参数
- ¥15 Fatal error in Process MEMORY
- ¥15 labelme生成的json有乱码?
- ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
- ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
- ¥45 求17位带符号原码乘法器verilog代码