更新记录
1.0.7(2024-01-06)
修改无法获取到通话录音文件的问题
1.0.6(2023-08-09)
增加音频文件过滤设置函数setFiltration
1.0.5(2023-04-21)
播放逻辑优化,解决有时会出现暂停失败的bug
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
获取本地音频文件信息安卓原生插件
-
支持Android平台使用
插件支持获取本地音频文件名称、文件大小、文件路径、音频时间等信息
-
函数说明
序号 函数名称 函数说明 1 addCallback(callback) 添加回调函数监听,所有结果都使用该回调函数返回 2 setFiltration(String json) 设置文件过滤,参数说明详见下方 3 getAudioFiles() 获取音频文件 4 play(String path) 播放,参数为音频文件路径 5 pause() 暂停 6 playAfterPause() 播放,调用暂停后使用该函数从暂停位置开始播放 7 stop() 停止 8 start() 开始,调用暂停后可使用该函数从暂停位置开始播放 9 getCurrentPosition() 获得当前播放的时间 10 getDuration() 获得音频总时间 11 seekTo(int msec) 设置播放进度,例如拖动播放进度条,参数为拖动时进度条改变的progress 12 setPlaySpeed(float speed) 设置倍速播放 13 isPlaying(callback) 是否正在播放,回调函数返回true/false -
addCallback(callback)函数参数说明
以调用getAudioFiles()函数为例,回调函数结果示例如下: { "code":0, "message":"获取数据成功", "data":[ { "name":"荣耀", "author":"王晓天", "album":"华为荣耀主题曲", "album_id":"1", "duration":270188, "path":"\/hw_product\/region_comm\/china\/media\/Pre-loaded\/Music\/Honor.mp3", "size":11202577, "type":"mp3" }, { "name":"20230106_103938", "author":"<unknown>", "album":"Sounds", "album_id":"3", "duration":20843, "path":"\/storage\/emulated\/0\/Sounds\/20230106_103938.m4a", "size":394736, "type":"m4a" } ] }
-
setFiltration(String json)函数说明
该函数为设置文件过滤条件的函数,json参数格式示例如下: { minSize: 0,//文件最低大小,默认为0,即返回所有大小的音频文件 fileType: ['mp3', 'm4a', 'awb'] //文件格式,默认返回所有格式的文件 }
-
code值说明
序号 code值 说明 1 -2 过滤参数格式错误 2 -1 获取数据失败,可能是没有存储读写权限,也可能是其它错误,具体请查看回调函数返回信息 3 0 获取数据成功,结果在addCallback(callback)函数中返回 4 1 音频播放完成 5 2 获取当前播放所在时间成功,结果在addCallback(callback)函数中返回 6 3 获得音频总时间成功,结果在addCallback(callback)函数中返回 -
使用示例
<template> <view class="uni-column"> <button style="margin-top: 60rpx;" @click="clickGetAudio()">获取音频数据</button> <view class="uni-column" style="margin-top: 60rpx;"> <view class="uni-row item-audio" v-for="(item,index) in datas"> <view class="uni-row title"> <text>{{item.name}}</text> </view> <view class="uni-row btn" @click="play(item)"> <text>播放</text> </view> </view> </view> <view class="uni-row" style="margin-top: 40rpx;width: 100%;justify-content: center;align-items: center;"> <view class="uni-row btn" style="width: 100rpx;margin-right: 30rpx;" @click="pause()"> <text>暂停</text> </view> <view class="uni-row btn" style="width: 100rpx;margin-right: 30rpx;" @click="playAfterPause()"> <text>播放</text> </view> <view class="uni-row btn" style="width: 100rpx;margin-right: 30rpx;" @click="start()"> <text>开始</text> </view> <view class="uni-row btn" style="width: 100rpx;margin-right: 30rpx;" @click="stop()"> <text>停止</text> </view> </view> <view class="uni-row" style="padding: 30rpx;"> <text>正在播放:{{item.name}}</text> </view> </view> </template> <script> const module = uni.requireNativePlugin("jushi-AudioMedia") export default { data() { return { datas: [], item: {} } }, created() { this.addCallback() module.setFiltration({//设置文件过滤条件 minSize: 0, fileType: ['mp3', 'm4a', 'awb'] }) }, methods: { addCallback() { //插件结果回调 module.addCallback(res => { console.log(res) switch (parseInt(JSON.parse(res).code)) { case 0: this.datas = JSON.parse(res).data break case 1: break case 2: break case 3: break } }) }, clickGetAudio() { module.getAudioFiles() }, play(item) { this.item = item module.play(item.path) }, pause(){ module.pause() }, playAfterPause(){ module.playAfterPause() }, start(){ module.start() }, stop(){ module.stop() } } } </script> <style> page { background-color: #ffffff; } .uni-column { display: flex; flex-direction: column; } .uni-row { display: flex; flex-direction: row; } .item-audio { padding: 20rpx; border-bottom: solid 1rpx #efefef; justify-content: space-between; align-items: center; } .title { width: 550rpx; font-size: 28rpx; } .btn { width: 120rpx; font-size: 24rpx; color: blue; border: 1rpx solid blue; border-radius: 10rpx; padding: 8rpx; align-items: center; justify-content: center; } .stream { word-break: break-all; word-wrap: break-word } </style>
-
示例应用下载
其它插件
安卓原生插件
-
UTS插件
-
前端插件