本帖最后由 粉红顽皮新 于 2018-12-25 17:12 编辑
audioplayer模块概述:audioPlayer 是一个音频播放器,使用本模块可实现对音频文件的播放、暂停、停止、跳转、设置音量大小、获取当前播放位置等各种功能。支持对本地、网络音频资源的播放。当播放网络音频时模块会把网络音频资源缓存到本地,并将缓存到本地的音频绝对路径返回给开发者。开发者可以通过 clearCache 接口,手动清除缓存在本地的音频资源,也可以通过fs模块的相关接口对单个缓存在本地的音频进行移动、删除等操作。开发者调用 api.clearCache 接口时也会清除所有本模块已缓存的音频文件。 对于缓冲音频文件的进度,开发者可通过 addEventListener 接口监听,也可通过 getBufferPercent 接口获取缓冲进度的百分比。当开发者调用 initPlayer 接口时模块底层会初始化一个播放器的实例对象,并判断是否是需要加载缓冲的资源(网络资源、在iOS上的音乐库资源),若是则进一步判断此音频资源是否已缓存到本地,若已缓存(未缓冲完整也按已缓存处理)则直接播,若未缓存则开始缓冲。 本模块可通过 scanAudioLibrary 接口扫描本地音频资源库 (在 iOS 上仅扫描系统音乐库),获取其标题、歌手、专辑、路径等信息。在 iOS 平台上,存在三种音频资源:1,网络音频;2,APP 沙箱(每个 APP 在系统内相当于一个文件夹,APP 只能访问本文件夹内的文件)内的音频;3,音乐库(系统音乐 APP,可通过 iTunes 同步的音频库)音频;本模块播放第三种音频资源时也会把音频文件缓存到 当前 APP 的沙箱内。
详见模块文档:https://docs.apicloud.com/Client-API/Func-Ext/audioPlayer
注意:
① 如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置
配置如下:
- <preference name="backgroundMode" value="audio"/>
复制代码 ② 由于 iOS 系统限制,在 iOS 平台上不支持后台切换播放网络音频资源。
③ 在 iOS 平台上,当音频在后台播放时,若启动其它播放音频的 APP,则后台播放事件会被挂起。当有电话呼入、呼出或其它占用喇叭的事件发生时,也会打断后台播放音频。被打断播放的事件可通过 addEventListener 接口监听。
④ iOS 平台上支持的音频格式有:mp3、mp2、mp1、caf、aif、wav、aac、mp4、3gp;
android 平台上支持的音频格式有:mp3、3gp、ogg、wav; 模块运行效果如图:
示例demo包:
运行录屏压缩包:
|