一门APP开发教程

标题: jsBridge.audioRecorder 安卓APP使用设备录音功能 [打印本页]

作者: 皇协军指挥官    时间: 2020-5-27 14:36
标题: jsBridge.audioRecorder 安卓APP使用设备录音功能
♦ jsBridge.audioRecorder;
♦ APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音;
♦ 执行 remove 可删除录音;



setListener 设置监听器

  1. • 如需接口调用事件,请设置此监听器;

  2. • 回调参数 event及data 请详见具体接口注释;

  3. jsBridge.audioRecorder.setListener(function(event, data) {
  4.   show({
  5.     event: event,
  6.     data : data
  7.   });
  8. });

  9. //请拉到页面底部查看回调数据信息
  10. $('html,body').animate({ scrollTop: $('#view').offset().top }, 500);

  11. /**
  12. 回调参数说明:
  13. event - 事件代码,数字类型
  14. data  - 事件数据,JSON 对象

  15. event编号及data数据结构 请详见具体接口注释

  16. **/
复制代码


removeListener 移除监听器

  1. //移除监听器,不会再收到回调通知
  2. //在需要时可重新调用 setListener
  3. jsBridge.audioRecorder.removeListener();
复制代码




startRecord 开始录音
  1. • 本接口会自动请求录音权限,未授权则无法录音;

  2. • 你可先调用 jsBridge.requestPermissions(["Microphone"]) 请求授权或判断是否已始终拒绝;

  3. • 如果没有权限可调用 jsBridge.appSettings() 跳转到APP设置界面提示用户开启权限;

  4. • Android 录音为 MPEG4 格式,AAC 编码;

  5. //APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音。
  6. jsBridge.audioRecorder.startRecord({
  7.   //必须,数字类型,最大录音时长(秒)
  8.   maxDuration: 60,
  9.   //可选,布尔类型,是否隐藏 APP 自带的 UI(录音话筒),默认 false
  10.   //设为 true 可以不用APP自带的UI,自己设计 HTML 录音界面即可
  11.   hiddenUI   : false
  12. }, function(succ, data) {
  13.   if (!succ) {
  14.     alert(JSON.stringify(data));
  15.   }
  16. });

  17. /**
  18. 回调事件(需调用 setListener 监听)
  19. event
  20.   10 //录音进度,每秒回调一次
  21.      data: {
  22.        duration   :, //数字类型,已录音长度(秒)
  23.        maxDuration:  //数字类型,最大可录音长度
  24.      }
  25.   11 //达到设置的最大录音长度(maxDuration),停止录音
  26.      data: {
  27.         duration    //数字类型,实际录音长度(秒)
  28.      }
  29.   12 //声波振幅,每200毫秒回调一次,可用于制作跳动的波形图
  30.      data: {
  31.         amplitude    //数字类型,声波振幅
  32.      }
  33.   13 //已停止录音
  34.      data: {
  35.         duration    //数字类型,实际录音长度(秒)
  36.         isCanceled  //布尔类型,是否已取消录音(如取消,APP会删除录音,不可回放,不可上传),只有 isCanceled 为 false 时录音才可用。
  37.      }
  38. **/
复制代码



stopRecord 停止录音

  1. jsBridge.audioRecorder.stopRecord(function(succ, data) {
  2.   alert(succ + "\n" + JSON.stringify(data));
  3. });

  4. /**
  5. data 返回实际录音时长
  6.   {
  7.     duration //数字类型,实际录音时长
  8.   }
  9. **/
复制代码


HTML Form 表单录音

  1. • 给 input file 标签添加 accept="audio/*" 属性。

  2. • form 表单每次录制时长限30分钟以内。

  3. <input type="file" accept="audio/*" name="file" />
复制代码



回放
play 回放录音
  1. //回放最近一次的录音
  2. jsBridge.audioRecorder.play(function(succ, data) {
  3.   alert(succ + "\n" + JSON.stringify(data));
  4. });
复制代码


pause 暂停播放
  1. jsBridge.audioRecorder.pause(function(succ, data) {
  2.   alert(succ + "\n" + JSON.stringify(data));
  3. });
复制代码


resume 恢复播放
  1. jsBridge.audioRecorder.resume(function(succ, data) {
  2.   alert(succ + "\n" + JSON.stringify(data));
  3. });
复制代码


stop 停止播放
  1. jsBridge.audioRecorder.stop(function(succ, data) {
  2.   alert(succ + "\n" + JSON.stringify(data));
  3. });
复制代码


duration 获取录音时长(秒)
  1. //需在 play 之后,stop 之前才能获取录音长度。
  2. jsBridge.audioRecorder.duration(function(succ, data) {
  3.   alert(succ + "\n" + JSON.stringify(data));
  4. });
复制代码


remove 删除录音
  1. //删除最近一次的录音
  2. jsBridge.audioRecorder.remove(function(succ, data) {
  3.   alert(succ + "\n" + JSON.stringify(data));
  4. });
复制代码


upload 上传录音
  1. //上传最近一次的录音
  2. //POST(multipart/form-data 编码)方式上传最新录音文件到指定的地址
  3. jsBridge.audioRecorder.upload({
  4.   //必须,字符串类型,POST 方式接收录音文件的链接地址
  5.   url  : "https://www.yimenapp.com/doc/t_.cshtml",
  6.   //可选,字符串类型,form-data 表单项名称,默认 file
  7.   //在服务器上用类似 Request.Files["file"] 方式获取数据
  8.   name : "file"
  9. }, function(succ, data) {
  10.   show({
  11.     succ: succ,
  12.     data: data
  13.   });
  14. });

  15. /**
  16. 回调事件(需调用 setListener 监听)
  17. event
  18.   20 //上传进度
  19.      data: {
  20.        uploaded :, //数字类型,已上传字节数(byte)
  21.        total    :  //数字类型,总字节数(byte)
  22.      }
  23.   21 //上传结束
  24.      data: {
  25.         success :, //布尔类型,是否上传成功
  26.         message :, //字符串类型,未成功时的错误说明
  27.         response : //字符串类型,服务器端返回的 Reponse 字符串
  28.      }
  29. **/
复制代码











欢迎光临 一门APP开发教程 (https://bbs.yimenapp.com/) Powered by Discuz! X3.4