【记录】微信录音开发(企业微信JSSDK-下载到自己的服务器-ffmpeg转码h5播放)

前段时间公司要求做一个录音功能。没有头绪,到网上查了下,发现微信的api提供的jssdk能满足我的需求,就决定用这个开发了。先后查了不少资料加上自己琢磨和问前辈的经验,花了大概一个多星期总算完成了,这边记录一下过程。


首先贴一篇教程出来,这篇教程前期省了我不少时间。

微信JSSDK中Config配置:http://blog.csdn.net/zhaojiacan/article/details/51025097 这篇讲的很详细,跟着配置是没问题的,

主要注意的有两点,其一是保证你的项目运行环境是你配置的js安全接口域名之下。其二是链接里面出现的util工具类他没有上传,里面

封装的都是些普通的写入写出方法,自己写都可以这不是重点。

jssdk配置成功后,就可以直接引入微信接口了。


wx.ready(function(){

	    /** 
	    config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,
	       所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,
	       则可以直接调用,不需要放在ready函数中。
	    */
	    
	    var localIds
	    var lysj //录音时间
	    var lyCss //样式
	    var lyName //图片名字
	    var localIdArr //本地ID集合字符串
		var serverIdArr //服务端ID集合字符串

		
		//注册微信播放录音结束事件【一定要放在wx.ready函数内】
		/* wx.onVoicePlayEnd({
		    success: function (res) {
		    }
		}); */
	    
		//假设全局变量已经在外部定义
		//按下开始录音
		$('#talk_btn').on('touchstart', function(event){
		    event.preventDefault();
		    START = new Date().getTime();
		    if(localIds != null){
		    	if(localIdArr == null){
		    		localIdArr = localIds
		    	}else{
		    		localIdArr += "," + localIds;
		    	}
		    }
		    localIds = null;
		    recordTimer = setTimeout(function(){
		        wx.startRecord({
		            success: function(){
		                localStorage.rainAllowRecord = 'true';
		                wx.onVoiceRecordEnd({
		                    // 录音时间超过一分钟没有停止的时候会执行 complete 回调
		                    complete: function (res) {
		                    	END = new Date().getTime();
		                        localIds = res.localId;
		                        alert('最多只能录制一分钟');
		                    }
		                }) 
		            },
		            cancel: function () {
		                alert('用户拒绝授权录音');
		            }
		        });
		    },300);
		});
		
		var yyTotal = 1; //语音数量
		//松手结束录音
		$('#talk_btn').on('touchend', function(event){
		    event.preventDefault();
		    if(localIds != null){
		    	
		    }else{
		    	END = new Date().getTime();	
		    }
		    
		    
		    if((END - START) < 300){
		        END = 0;
		        START = 0;
		        //小于300ms,不录音
		        clearTimeout(recordTimer);
		        alert("录音时间太短,录音不做保存!")
		    }else{
		        $("#voiceButton").show();
		        lysj = (END - START)/1000;
		        if(lysj <= 10){
		        	lyName = 10;
		
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值