zoukankan      html  css  js  c++  java
  • HTML5微信jssdk录音播放语音的方法

    HTML5微信jssdk录音播放语音的方法
    需要注意的2个问题
    1 就是一定要判断1秒内 录音都不算 ps:太短不能录音
    2 录音超过1分钟 会发现正在录音突然消失 所以要写wx.onVoiceRecordEnd 这个是是1分钟会自动出发 然后写上传数据 ps这个必须要写在wx.startRecord里面 不然不触发!!!切记

    前端代码如下
    <pre>
    var START;
    $('.luyin').on('touchstart',function () {
    new Date().getTime();
    wx.startRecord({
    success: function(){
    START = new Date().getTime();
    wx.onVoiceRecordEnd({
    // 录音时间超过一分钟没有停止的时候会执行 complete 回调
    complete: function (res) {
    alert('最多只能录制一分钟');
    var localId = res.localId;
    uploadluyin(localId,60000);
    }
    });
    },
    cancel: function () {
    alert('用户拒绝授权录音');
    return false;
    }
    });

    })
    $('.luyin').on('touchend',function () {
    var END = new Date().getTime();
    //录音时间
    var luyintime=END - START;
    if(luyintime < 2000){
    END = 0;
    START = 0;
    wx.stopRecord({});
    alert('录音时间不能少于2秒');
    return false;
    }else {


    wx.stopRecord({
    success: function (res) {
    var localId = res.localId;

    uploadluyin(localId,luyintime);

    }
    });
    }
    })

    function uploadluyin(localId,luyintime) {
    wx.uploadVoice({
    localId: localId, // 需要上传的音频的本地ID,由stopRecord接口获得
    isShowProgressTips: 1, // 默认为1,显示进度提示
    success: function (res) {
    var serverId = res.serverId; // 返回音频的服务器端ID
    console.log(serverId);

    $.post("/home/xishanluyin/scyuyin", {
    "serverId": serverId,
    "luyintime": luyintime
    },
    function (data) {
    if (data.success == 1) {
    alert('录音成功');
    } else {
    alert(data.msg);
    }
    }, "json");
    }
    })
    }
    </pre>

    后端代码 核心代码如下直接写入amr就行 因为生成的默认都是amr


    <pre>
    $ft = copy("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$accessToken}&media_id={$imgServerId}",
    "{$imgServerId}.mp3");
    //转成mp3 注意只有在真机上才可以成功转成mp3 微信web开发者工具生成的amr不能转成mp3的
    shell_exec('ffmpeg -i _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.amr _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.mp3');

    </pre>
    ffmpeg 命令需要安装一些软件
    具体说明请<a href="http://newmiracle.cn/?p=1072">ffmpeg源码安装教程</a>
    转好的mp3拖到浏览器测试下 如果可以 就说明转mp3成功了

    然后返回web路径就OK啦 这个audio就可以访问啦

  • 相关阅读:
    python3 类方法的约束
    python3 最简单的网络编程udp(socket数据包datagram)
    python3 最简单的网络编程tcp(socket数据流)
    python3 初识面向对象
    python3 包的导入和使用
    python3 模块的导入和使用
    python3 logging模块
    python 逻辑运算
    python3 datetime模块
    python 面试题
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11872579.html
Copyright © 2011-2022 走看看