uniapp 播放本地音乐
2022-02-10 本文已影响0人
webmrxu
背景:自己很喜欢听周杰伦的音乐,而不太喜欢其他的音乐。平时无事听的最多的就是周杰伦的歌,但好多app太多广告,不是要会员就是需要付费,想到以前有下载全部周杰伦的歌曲,所以想实现一个自定义的音乐播放器,只自己使用,用于播放本地周杰伦的歌曲。
实现效果如下图:
image.png
实现过程想了很多,首先的想法是如何扫描本地文件,过滤出所有的音乐,然后播放。然后找了很久,uniapp论坛,都不是很理想。
最终找到了一个插件,使用该插件发现可以扫描本地文件,获取到文件名称,路径(path) 等,于是有了进展。该插件用于选择文件,类似文件管理系统,可以查看系统文件。
导入该插件demo到编辑器中,连接手机启动app可以运行,并获取了系统根目录的所有文件及文件夹。
获取到了歌曲路径后,就直接使用音乐播放器的api,使用绝对路径播放该音乐,就完成初级音乐播放app原型,然后完善app细节就实现了自定义播放本地音乐app。
核心代码如下。
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = '/storage/emulated/0/0/music/jay/0449fc38-c2bc-40.flac'; // 本地音乐文件绝对路径
innerAudioContext.play();
本地音乐文件绝对路径获取可以查看这个插件 的源码,在源码中,可以获取看到绝对路径 path 的获取。