mui调用手机麦克风或选择文件上传

调用手机麦克风

android默认录音格式amr,ios默认wav,可通过RecordOptions设置

//开启长按、释放功能
mui.init({
	gestureConfig:{
		longtap:true,
		hold:true,
		releaase:true
	}
});

var r;
var voiceTime;
//按住录音
document.getElementById("holdDiv").addEventListener("hold", function() {
	r=plus.audio.getRecorder();	//录音对象
	if(r == null){
		mui.alert("调用麦克风失败!", "提示信息", "关闭", null);
		return ;
	}
	voiceTime =(new Date()).valueOf(); 
	var voicePath="_doc/audio/"; 
	r.record({filename:voicePath,samplerate:16000},function(path){
		//录音成功回调
		mui.showLoading("正在提交..","div");
		plus.io.resolveLocalFileSystemURL(path,function(entry){ 
			var url = jsonp_url + "sys/MobileWays/recVoice?&mobileLogin=true";
			var task=plus.uploader.createUpload(url,{method:"POST"},function(t,status){
				mui.hideLoading();
				if(status == 200){
					var dataJson=JSON.parse(t.responseText);
					//语音解析成功
					if(dataJson.result == "1"){
						mui.alert("识别结果:" + dataJson.data,"信息提示","关闭",function(){
					
						});
					}else{
						mui.alert("语音解析失败:" + dataJson.data,"系统错误","关闭",false);
					}
				}else{
					mui.alert(status + ":语音解析失败!","系统错误","关闭",false); 
				}
			});
			task.addFile(path,{key:"file"});
			task.start();
		});
		
	},function(e){
		//录音错误回调
		mui.alert("录音失败!" + e.message, "提示信息", "关闭", null);
		return ;
	});
})	

//释放
document.getElementById("holdDiv").addEventListener("release", function() {
	var timeNow=(new Date()).valueOf(); 
	if((parseInt(timeNow) - parseInt(voiceTime)) >= 2000){
		//停止录音
		if(r!=null){
			r.stop();
		}
	}else{
		mui.toast('录音不足2秒,请重新录入!');
	}
})	

选择语音文件

使用的file标签

var vFile;
document.getElementById("voiceFile").addEventListener("change",function(){
	vFile=this.files[0];
	var fileName=this.files[0].name;
	var suffix=fileName.substring(fileName.lastIndexOf(".") + 1);
	//可以限制后缀名
	
	var url = URL.createObjectURL(this.files[0]);
        var audioElement = new Audio(url);
        var duration;
        audioElement.addEventListener("loadedmetadata", function (_event) {
            duration = audioElement.duration;
            if(parseInt(duration) >= 50){
			mui.toast("音频长度超过50秒!");
			return ;
		}
		//上传音频识别
		mui.showLoading("正在提交..","div");
		var formData = new FormData();
		formData.append("file",vFile);
		var url = jsonp_url + "sys/MobileWays/recVoice";
		$.ajax({
	            url: url,
	            type: "POST",
	            data: formData,
	            contentType: false,
	            processData: false,
	            success: function (data) {
				mui.hideLoading();
				var dataJson=JSON.parse(data);
	            },
	            error: function () {
				mui.hideLoading();
	                   mui.alert("语音解析失败!","系统错误","关闭",false); 
	            }
        	});
		
        });

});

后台使用的百度语音识别

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值