♦ jsBridge.audioRecorder; ♦ APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音; ♦ 执行 remove 可删除录音;
setListener 设置监听器
- • 如需接口调用事件,请设置此监听器;
-
- • 回调参数 event及data 请详见具体接口注释;
-
- jsBridge.audioRecorder.setListener(function(event, data) {
- show({
- event: event,
- data : data
- });
- });
-
- //请拉到页面底部查看回调数据信息
- $('html,body').animate({ scrollTop: $('#view').offset().top }, 500);
-
- /**
- 回调参数说明:
- event - 事件代码,数字类型
- data - 事件数据,JSON 对象
-
- event编号及data数据结构 请详见具体接口注释
-
- **/
复制代码
removeListener 移除监听器
- //移除监听器,不会再收到回调通知
- //在需要时可重新调用 setListener
- jsBridge.audioRecorder.removeListener();
复制代码
startRecord 开始录音
- • 本接口会自动请求录音权限,未授权则无法录音;
-
- • 你可先调用 jsBridge.requestPermissions(["Microphone"]) 请求授权或判断是否已始终拒绝;
-
- • 如果没有权限可调用 jsBridge.appSettings() 跳转到APP设置界面提示用户开启权限;
-
- • Android 录音为 MPEG4 格式,AAC 编码;
-
- //APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音。
- jsBridge.audioRecorder.startRecord({
- //必须,数字类型,最大录音时长(秒)
- maxDuration: 60,
- //可选,布尔类型,是否隐藏 APP 自带的 UI(录音话筒),默认 false
- //设为 true 可以不用APP自带的UI,自己设计 HTML 录音界面即可
- hiddenUI : false
- }, function(succ, data) {
- if (!succ) {
- alert(JSON.stringify(data));
- }
- });
-
- /**
- 回调事件(需调用 setListener 监听)
- event
- 10 //录音进度,每秒回调一次
- data: {
- duration :, //数字类型,已录音长度(秒)
- maxDuration: //数字类型,最大可录音长度
- }
- 11 //达到设置的最大录音长度(maxDuration),停止录音
- data: {
- duration //数字类型,实际录音长度(秒)
- }
- 12 //声波振幅,每200毫秒回调一次,可用于制作跳动的波形图
- data: {
- amplitude //数字类型,声波振幅
- }
- 13 //已停止录音
- data: {
- duration //数字类型,实际录音长度(秒)
- isCanceled //布尔类型,是否已取消录音(如取消,APP会删除录音,不可回放,不可上传),只有 isCanceled 为 false 时录音才可用。
- }
- **/
复制代码
stopRecord 停止录音
- jsBridge.audioRecorder.stopRecord(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
-
- /**
- data 返回实际录音时长
- {
- duration //数字类型,实际录音时长
- }
- **/
复制代码
HTML Form 表单录音
- • 给 input file 标签添加 accept="audio/*" 属性。
-
- • form 表单每次录制时长限30分钟以内。
-
- <input type="file" accept="audio/*" name="file" />
复制代码
回放
play 回放录音
- //回放最近一次的录音
- jsBridge.audioRecorder.play(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
pause 暂停播放
- jsBridge.audioRecorder.pause(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
resume 恢复播放
- jsBridge.audioRecorder.resume(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
stop 停止播放
- jsBridge.audioRecorder.stop(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
duration 获取录音时长(秒)
- //需在 play 之后,stop 之前才能获取录音长度。
- jsBridge.audioRecorder.duration(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
remove 删除录音
- //删除最近一次的录音
- jsBridge.audioRecorder.remove(function(succ, data) {
- alert(succ + "\n" + JSON.stringify(data));
- });
复制代码
upload 上传录音
- //上传最近一次的录音
- //POST(multipart/form-data 编码)方式上传最新录音文件到指定的地址
- jsBridge.audioRecorder.upload({
- //必须,字符串类型,POST 方式接收录音文件的链接地址
- url : "https://www.yimenapp.com/doc/t_.cshtml",
- //可选,字符串类型,form-data 表单项名称,默认 file
- //在服务器上用类似 Request.Files["file"] 方式获取数据
- name : "file"
- }, function(succ, data) {
- show({
- succ: succ,
- data: data
- });
- });
-
- /**
- 回调事件(需调用 setListener 监听)
- event
- 20 //上传进度
- data: {
- uploaded :, //数字类型,已上传字节数(byte)
- total : //数字类型,总字节数(byte)
- }
- 21 //上传结束
- data: {
- success :, //布尔类型,是否上传成功
- message :, //字符串类型,未成功时的错误说明
- response : //字符串类型,服务器端返回的 Reponse 字符串
- }
- **/
复制代码
|