/**
* 语音组件<br>
* <ul>
* <li>语音相关的录制、播放,类似收音机的操作</li>
* <li>播放指定的文件</li>
* </ul><br>
* <strong>
* 页面需要导入的文件
* <ul>
* <li>cmp-audio.js</li>
* <li>cmp-audio.css</li>
* </ul>
* <span style="color:red">此接口不支持微协同</span>
* </strong>
*
* @module Audio
* @subtitle 录音模块
*/
/**
* 语音组件
* <br>该类提供了对移动设备的语音接口的调用,包括:
* <ul>
* <li>开始录音(startRecord)</li>
* <li>停止录音(stopRecord)</li>
* <li>播放录音(playVoice)</li>
* <li>停止播放(stopVoice)</li>
* <li>获取播放时间(getDuration)</li>
* <li>提供有UI界面的录、播一套的组件</li>
* <li>提供有UI界面的播放录音的界面</li>
* </ul>
* <br style="color:red">注:录音时,需要将记录的文件名以.wav的格式进行录制
* @namespace cmp
* @class audio
*/
/**
* 录音权限判断
* @method checkPermission
* @namespace cmp.audio
* @param {Object} [cfg] 回调函数对象配置
* @param {Function} [cfg.success] 成功回调函数
* @param {Function} [cfg.error] 失败回调函数
* @example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.checkPermission({
* success:function(src){
* //成功后直接调用开发者的成功回调
* },
* error:function(e){
* //会弹出去设置权限的提示
* }
* });
* </script>
* ```
*/
/**
* 开始录音
* @method startRecord
* @namespace cmp.audio
* @param {Object} [cfg] 回调函数对象配置
* @param {Function} [cfg.success] 成功回调函数
* @param {Function} [cfg.error] 失败回调函数
* @example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.startRecord({
* success:function(src){
* //返回录音生成的文件路径
* //如果是android系统,src的上传路径是cordova.file.externalRootDirectory+src
* //如果是ios系统,src即为上传路径
* },
* error:function(e){
* //请对照错误码进行处理
* }
* });
* </script>
* ```
* @returns {object} 媒体对象Media
*/
/**
* 停止录音
* @method stopRecord
* @namespace cmp.audio
* @param {Object} [cfg] 回调函数对象配置
* @param {Function} [cfg.success] 成功回调函数
* @example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.stopRecord({
* success:function(src){
* //返回录音生成的文件路径
* //如果是android系统,src的上传路径是cordova.file.externalRootDirectory+src
* //如果是ios系统,src即为上传路径
* },
* error:function(e){
* //请对照错误码进行处理
* }
* });
* </script>
* ```
*/
/**
* 播放录音
* @method playVoice
* @namespace cmp.audio
* @param {Object} options 播放录音参数配置
* @param {String} options.url 播放文件地址
* @param {Function} [options.success] 成功播放完毕回调函数
* @param {Function} [options.error] 失败回调函数
* @param {Function} [options.initSuccess] 成功开始播放的回调函数
* @example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.playVoice({
* url:"播放的路径",
* initSuccess:function(){
* //do something
* },
* success:function(src){
* //返回录音生成的文件路径
* //如果是android系统,src的上传路径是cordova.file.externalRootDirectory+src
* //如果是ios系统,src即为上传路径
* },
* error:function(e){
* //请对照错误码进行处理
* }
* });
* </script>
* ```
*/
/**
* 停止播放
* @method stopVoice
* @namespace cmp.audio
* @param {Object} obj 参数对象配置
* @param {String} obj.url 播放文件地址
* @param {Function} [obj.success] 成功回调函数
* @example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.stopVoice({
* url:"停止播放的路径",
* success:function(src){
* //返回录音生成的文件路径
* //如果是android系统,src的上传路径是cordova.file.externalRootDirectory+src
* //如果是ios系统,src即为上传路径
* } //请对照错误码进行处理
* });
* </script>
* ```
*/
/**
* 获取播放时间
* @method getDuration
* @namespace cmp.audio
* @param url 播放文件地址
* @returns {number} 播放时间
*/
/**
* 录、播UI界面
* @method init
* @namespace cmp.audio
* @param {Object} [options] 调用配置参数
* @param {String} [options.text] UI组件标题
* @param {Function} [options.callback] 点击使用按钮回调函数,将录音结果的文件地址返回给回调
* @param {Function} [options.cancelCallback] 点击取消按钮的回调
*@example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.init({
* text:"标题",
* callback:function(src){
* //返回录音生成的文件路径
* //如果是android系统,src的上传路径是cordova.file.externalRootDirectory+src
* //如果是ios系统,src即为上传路径
* },
* cancelCallback:function(){
* }
* });
* </script>
* ```
*/
/**
* 播放录音UI界面
* @method play
* @namespace cmp.audio
* @param {Object} options 调用配置参数
* @param {String} options.filepath 录音文件的地址
* @param {String} options.filename 录音文件的名称
* @param {Function} [options.cancelCallback] 点击取消按钮的回调
*@example
* ```
* 文件导入路径:
* M3App端
* <link rel="stylesheet" href="http://cmp/v/css/cmp.css"></link>
* <link rel="stylesheet" href="http://cmp/v/css/cmp-audio.css"></link>
* <script src="http://cmp/v1.0.0/js/cordova/__CMPSHELL_PLATFORM__/cordova.js"></script>
* <script src="http://cmp/v1.0.0/js/cordova/cordova-plugins.js"></script>
* <script src="http://cmp/v/js/cmp.js"></script>
* <script src="http://cmp/v/js/cmp-audio.js"></script>
* ===========================================================================================
* 微协同端:不支持
* =========================================================================================
* 调用组件
* <script>
* cmp.audio.play({
* filepath:cordova.file.externalRootDirectory+"/storage/emulated/0/m3/files/cmp_recording_sds12.wav",
* filename:"cmp_recording_sds12.wav",
* cancelCallback:function(){
* }
* });
* </script>
* ```
*/