APP开发录音功能 upload 上传录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

upload 上传录音

//上传最近一次的录音
//POST(multipart/form-data 编码)方式上传最新录音文件到指定的地址
jsBridge.audioRecorder.upload({
  //必须,字符串类型,POST 方式接收录音文件的链接地址
  //如需鉴权,请将鉴权参数放在此 url 上,参数需 urlEncode 编码
  url  : "https://...",
  //可选,字符串类型,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 字符串
     }
**/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//上传最近一次的录音
//POST(multipart/form-data 编码)方式上传最新录音文件到指定的地址
jsBridge.audioRecorder.upload({
  //必须,字符串类型,POST 方式接收录音文件的链接地址
  //如需鉴权,请将鉴权参数放在此 url 上,参数需 urlEncode 编码
  url  : "https://...",
  //可选,字符串类型,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 字符串
     }
**/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//上传最近一次的录音
//POST(multipart/form-data 编码)方式上传最新录音文件到指定的地址
jsBridge.audioRecorder.upload({
  //必须,字符串类型,POST 方式接收录音文件的链接地址
  //如需鉴权,请将鉴权参数放在此 url 上,参数需 urlEncode 编码
  url  : "https://...",
  //可选,字符串类型,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 字符串
     }
**/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音 read 读取录音文件内容

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

read 读取录音文件内容

//读取录音文件内容,以 Base64 编码格式返回,需自己转换为二进制数据
jsBridge.audioRecorder.read(function(contentAsBase64) {
  show({
    contentAsBase64: contentAsBase64
  });
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//读取录音文件内容,以 Base64 编码格式返回,需自己转换为二进制数据
jsBridge.audioRecorder.read(function(contentAsBase64) {
  show({
    contentAsBase64: contentAsBase64
  });
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//读取录音文件内容,以 Base64 编码格式返回,需自己转换为二进制数据
jsBridge.audioRecorder.read(function(contentAsBase64) {
  show({
    contentAsBase64: contentAsBase64
  });
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 remove 删除录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

remove 删除录音

//删除最近一次的录音
jsBridge.audioRecorder.remove(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//删除最近一次的录音
jsBridge.audioRecorder.remove(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//删除最近一次的录音
jsBridge.audioRecorder.remove(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 duration 获取录音时长(秒)

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

duration 获取录音时长(秒)

//需在 play 之后,stop 之前才能获取录音长度。
jsBridge.audioRecorder.duration(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//需在 play 之后,stop 之前才能获取录音长度。
jsBridge.audioRecorder.duration(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//需在 play 之后,stop 之前才能获取录音长度。
jsBridge.audioRecorder.duration(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 stop 停止播放

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

stop 停止播放

jsBridge.audioRecorder.stop(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.stop(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.stop(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音 resume 恢复播放

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

resume 恢复播放

jsBridge.audioRecorder.resume(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.resume(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.resume(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 pause 暂停播放

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

pause 暂停播放

jsBridge.audioRecorder.pause(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.pause(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.pause(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 play 回放录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

play 回放录音

//回放最近一次的录音
jsBridge.audioRecorder.play(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//回放最近一次的录音
jsBridge.audioRecorder.play(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//回放最近一次的录音
jsBridge.audioRecorder.play(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 HTML Form 表单录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

HTML Form 表单录音

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

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

<input type="file" accept="audio/*" name="file" />

APP开发录音 stopRecord 停止录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

stopRecord 停止录音

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

/**
data 返回实际录音时长
  {
    duration //数字类型,实际录音时长
  }
**/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.stopRecord(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

/**
data 返回实际录音时长
  {
    duration //数字类型,实际录音时长
  }
**/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.stopRecord(function(succ, data) {
  alert(succ + "\n" + JSON.stringify(data));
});

/**
data 返回实际录音时长
  {
    duration //数字类型,实际录音时长
  }
**/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP开发录音功能 startRecord 开始录音 – voice

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

startRecord 开始录音 – voice

jsBridge.audioRecorder.startRecord({
  maxDuration: 60,
  hiddenUI   : false,
  source     : "voice"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.startRecord({
  maxDuration: 60,
  hiddenUI   : false,
  source     : "voice"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.startRecord({
  maxDuration: 60,
  hiddenUI   : false,
  source     : "voice"
}, function(succ, data) {
  if (!succ) {
    alert(JSON.stringify(data));
  }
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP录音功能开发 startRecord 开始录音

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

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,
  //可选,字符串类型,音源,默认 mic 麦克风
  //mic   麦克风
  //voice 语音通信(仅用于语音通话,不然可能引发闪退)
  source     : "mic"
}, 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 时录音才可用。
     }
**/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音。
jsBridge.audioRecorder.startRecord({
  //必须,数字类型,最大录音时长(秒)
  maxDuration: 60,
  //可选,布尔类型,是否隐藏 APP 自带的 UI(录音话筒),默认 false
  //设为 true 可以不用APP自带的UI,自己设计 HTML 录音界面即可
  hiddenUI   : false,
  //可选,字符串类型,音源,默认 mic 麦克风
  //mic   麦克风
  //voice 语音通信(仅用于语音通话,不然可能引发闪退)
  source     : "mic"
}, 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 时录音才可用。
     }
**/
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//APP 端始终只保留一个录音文件,执行 startRecord 将覆盖已有录音。
jsBridge.audioRecorder.startRecord({
  //必须,数字类型,最大录音时长(秒)
  maxDuration: 60,
  //可选,布尔类型,是否隐藏 APP 自带的 UI(录音话筒),默认 false
  //设为 true 可以不用APP自带的UI,自己设计 HTML 录音界面即可
  hiddenUI   : false,
  //可选,字符串类型,音源,默认 mic 麦克风
  //mic   麦克风
  //voice 语音通信(仅用于语音通话,不然可能引发闪退)
  source     : "mic"
}, 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 时录音才可用。
     }
**/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP录音开发 removeListener 移除监听器

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

removeListener 移除监听器

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

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.audioRecorder.removeListener();

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//移除监听器,不会再收到回调通知
//在需要时可重新调用 setListener
jsBridge.audioRecorder.removeListener();

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP录音开发 setListener 设置监听器

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

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

• 回调参数 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数据结构 请详见具体接口注释

**/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.setListener(function(event, data) {
  show({
    event: event,
    data : data
  });
});


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

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

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

**/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.audioRecorder.setListener(function(event, data) {
  show({
    event: event,
    data : data
  });
});


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

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

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

**/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

从单声道、立体声、环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音。其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界。凭借这个技术,各厂商在游戏、影视、音乐等场景中为用户创造更真实自然且沉浸的听觉体验,也实现了更好的用户订阅增长。

传统3D音频的制作需获取原始的分轨素材(如录制的人声、钢琴声等),并使用专业的数字音频工作站(DAW)和3D混音插件手工制作,因此制作周期长、生产效率低、成本高、门槛高。此外,开发者由于没有歌曲的原始分轨,因此通过传统方法进行3D音频制作的难度很大。HMS Core音频编辑服务(Audio Editor Kit)提供了音源分离(获取分轨)、空间音频渲染能力,开发者仅需输入立体声,就能快速生成3D音频内容,提升用户音频体验和提升产品竞争力!

HMS Core音频编辑服务3D音频生成示意图

音源分离技术

由于我们当前接触到的音频大都是立体声,所有音频对象(如音乐中的人声、钢琴、吉他等)都已经混合在左右两个声道当中,无法轻易地分开,更不要提将其渲染放置在不同的空间位置,因此将立体声中的特定元素分离是3D化的一个核心技术。

华为算法团队通过对大量的音乐进行深度学习建模,并结合传统信号处理能力最终实现音源分离:首先利用短时傅里叶变换(STFT)将一维的音频信号变换到二维的时频谱;然后将得到的二维的时频谱与原始的一维时域信号一起作为双流输入,通过多层的残差编码及大量数据的训练,获得目标乐器的隐空间表达;最后进一步通过一系列的变换矩阵最终还原成原始的对象立体声信号。

上述处理过程中使用的变换矩阵和网络结构是华为的独特技术,是针对不同的乐器音色特点专门设计的,能够确保每一个乐器都能尽可能的分离完整且干净,为3D化提供足够优质的分轨素材。其涉及的核心能力包括:

1、音频信号特征提取:包括通过编码器从时域信号直接提取特征,以及通过短时傅里叶变换从时域信号提取时频谱特征;

2、深度学习模型构建:加入残差模块与注意力机制,增强对不同乐器谐波建模能力与时序关联能力;

3、多通道维纳滤波:结合传统信号处理的能力,通过深度学习建模预测对象与非对象功率谱关系,构建与处理滤波系数。

音频分离技术示意图

目前,HMS Core已对外开放了12种音源分离的能力(人声、伴奏、鼓、小提琴、贝斯、钢琴、木吉他、电吉他、弦乐、主唱、带伴唱伴奏和管弦乐),帮助开发者快速地提取出自己想要的乐器进行3D化编辑。

空间音频渲染技术

仅通过两只耳朵收听外部声音,人类为什么可分辨声源的位置呢?这是由于从声源传递到两只耳朵的声音实际上存在细微的差异,包括到达时间、接收到的能量、以及相位差等信息。而这些信息差综合体现在一系列传递函数,称为头相关传递函数(HRTF)。通过将HRTF叠加到单点声源,我们就可以虚拟出真实世界中声音的方位直达声的部分。为解决因头型、肩宽等人体体征的差异带来的HRTF因人而异的难题,我们通过大量数据的分析,设计了一套较普适的HRTF,可以让每个人都能享受到3D音频。另外为了营造空间中声音的反射、散射、干涉等物理现象,我们还通过叠加一系列的房间相应函数(RIR)来构建真实的空间,形成所谓的混响。因此,通过一系列的HRTF和RIR对声源进行滤波,我们就可以将之前分离的素材进行3D化,形成3D音乐。

空间音频渲染技术示意图

目前,HMS Core音频编辑服务提供的音源分离、空间音频渲染服务这套组合拳已经应用在华为音乐的高级音效当中,用户可以进入华为音乐音效页面,在高级音效栏目中选择声空音效或声乐纯享,感受3D音频的魅力。

华为音乐声空音效与声乐纯享功能