zoukankan      html  css  js  c++  java
  • 微信公众号-音频接口(上传、下载、辨音)

    音频相关接口,其中需要注意的是:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id,参考文档 .目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请登录微信公众平台,在开发 - 接口权限的列表中,申请提高临时上限。

                <div class="content">
                    <!-- 音频接口 -->
                    <!-- 1.开始录音 -->
                    <input type="button" name="" id="startRecord" value="开始录音" />
                    <!-- 2.播放录音接口 -->
                    <input type="button" name="" id="stopRecord" value="播放录音" />
                    <!-- 3.暂停播放接口 -->
                    <input type="button" name="" id="pauseVoice" value="暂停播放" />
                    <!-- 5.上传语音接口 -->
                    <input type="button" name="" id="uploadVoice" value="上传语音" />
                    <!-- 6.下载语音接口 -->
                    <input type="button" name="" id="downloadVoice" value="下载语音" />
                    <!-- 7.识别音频并返回识别结果接口 -->
                    <input type="button" name="" id="translateVoice" value="听音辨字" />
                    <div class="translateVoice" style="border: 1px solid #EBEBEB;padding: 20px;">
                        
                    </div>
                </div>

    相关js代码

    globalObj.post({
        url: window.location.href,
    }, '/apis/Wxshare/share_wx', function(res) {
        // alert(JSON.stringify(res))
        var signPackage = res.data.signPackage
        wx.config({
            debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
            appId: signPackage.appId, // 必填,公众号的唯一标识
            timestamp: signPackage.timestamp, // 必填,生成签名的时间戳
            nonceStr: signPackage.nonceStr, // 必填,生成签名的随机串
            signature: signPackage.signature, // 必填,签名,见附录1
            jsApiList: ['startRecord','stopRecord','playVoice','translateVoice',
            'onVoiceRecordEnd','pauseVoice','onVoicePlayEnd','uploadVoice','downloadVoice'], // 所有要调用的 API 都要加到这个列表中
        });
        wx.ready(function() {
            var serverId=''//服务器音频ID
            var startflag=true
            $('#startRecord').on('tap',function(){
                if(startflag){
                    <!-- 1.开始录音 -->
                    $('[name=startRecord]').val('停止录音')
                    wx.startRecord();
                    startflag = false
                    <!-- 4.监听录音自动停止接口 -->
                    wx.onVoiceRecordEnd({
                        // 录音时间超过一分钟没有停止的时候会执行 complete 回调
                        complete: function (res) {
                            var localId = res.localId; 
                            $('#stopRecord').attr('data-localId',localId)
                            startflag = true
                        }
                    });
                }else{
                    <!-- 2.停止录音接口 -->
                    wx.stopRecord({
                        success: function (res) {
                            var localId = res.localId;
                            // 把音频的本地ID绑定到播放音频的按钮上
                            $('#stopRecord').attr('data-localId',localId)
                            $('[name=startRecord]').val('开始录音')
                        }
                    });
                }
            })
            $('#stopRecord').on('tap',function(){
                <!-- 3.播放录音接口 -->
                wx.playVoice({
                    localId: $('#stopRecord').attr('data-localId'), // 需要播放的音频的本地ID,由stopRecord接口获得
                    success:function(){
                        // 监听语音播放完毕接口
                        wx.onVoicePlayEnd({
                            success: function (res) {
                                var localId = res.localId; // 返回音频的本地ID
                                alert('语音播放完毕')
                            }
                        });
                    }
                });
            })
            $('#pauseVoice').on('tap',function(){
                <!-- 3.播放录音接口 -->
                wx.pauseVoice({
                    localId: $('#stopRecord').attr('data-localId') // 需要播放的音频的本地ID,由stopRecord接口获得
                });
            })
            $('#uploadVoice').on('tap',function(){
                <!-- 5.上传语音 -->
                /**
                 * 上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id
                 */
                wx.uploadVoice({
                    localId: $('#stopRecord').attr('data-localId'), // 需要播放的音频的本地ID,由stopRecord接口获得
                    isShowProgressTips: 1, // 默认为1,显示进度提示
                    success: function (res) {
                        serverId = res.serverId; // 返回音频的服务器端ID
                        alert('上传成功')
                    }
                });
            })
            $('#downloadVoice').on('tap',function(){
                <!-- 6.下载语音 -->
                wx.downloadVoice({
                    serverId: serverId, // 需要播放的音频的本地ID,由stopRecord接口获得
                    isShowProgressTips: 1, // 默认为1,显示进度提示
                    success: function (res) {
                          var localId = res.localId; // 返回音频的本地ID
                          $('#stopRecord').attr('data-localId',localId)
                    }
                });
            })
            $('#translateVoice').on('tap',function(){
                <!-- 6.下载语音 -->
                wx.translateVoice({
                    localId: $('#stopRecord').attr('data-localId'), // 需要播放的音频的本地ID,由stopRecord接口获得
                    isShowProgressTips: 1, // 默认为1,显示进度提示
                    success: function (res) {
                        $('.translateVoice').html(res.translateResult)
                        
                    }
                });
            })
        });
    })
    当你微笑的时候,全世界都会对你微笑。
  • 相关阅读:
    windows安装php的redis扩展及测试(适合php个各个版本)
    golang+linux+pipline
    泰勒展开式
    微积分
    矩阵
    learning rate warmup实现
    python asyncio as_completed
    python asyncio run_until_complete
    python asyncio 使用ThreadPoolExecutor和asyncio完成阻塞IO请求
    python asyncio call_soon, call_at, call_later
  • 原文地址:https://www.cnblogs.com/liruoruo/p/10276109.html
Copyright © 2011-2022 走看看