找回密码
 立即注册

QQ登录

只需一步,快速开始

微信小程序开发问答

关注:326

所属分类: 微信开发 微信小程序开发问答

1、清楚的描述问题,必要时请配图、代码等!点击查看如何发帖
2、本版为小程序技术问答板块,请勿各种无意义的灌水回复,违者将做禁封账号处理

3、请及时查看问题回复,为了让更多开发者得到参考,如问题得到解决,楼主务必选择一个最佳答案(点击“设为最佳”按钮),谢谢:)


QQ群:
很快小程序开发交流1群:立即加群
很快小程序开发交流2群:立即加群

小程序录音求助

[复制链接]
查看: 333|回复: 1
最佳答案
0 

1

主题

1

帖子

68

积分

新人求带

积分
68
 楼主| 发表于 2017-5-19 13:54:26 | 显示全部楼层 |阅读模式
我点击一个按钮跳转到一个新页面,在页面初始化的时候,调取wx.startRecord({})安卓是没有问题的,而苹果只有第一次进入的时候会进入success,之后进入都是fail: function (res) {
          //录音失败   如果我在页面添加一个按钮点击按钮录音的话,无论多少次都没有问题。
上代码
    onLoad: function () {
      var that = this;
      wx.getStorage({
        key: 'search',
        success: function (res) {
          if (res.data) {
            that.setData({
              history_text: res.data,
              history_empty: false
            })
          }
        },
        fail: function () {//没有缓存 不显示
          that.setData({
            history_empty: true
          })
        }
      })
      wx.getStorage({
        key: 'userInfo',
        success: function (res) {
          if (res.data.userId) {
            that.setData({
              userId: res.data.userId
            })
          }
        },
        fail: function () {//没有缓存 不显示
          that.setData({
            userId: ''
          })
        }
      })
    },
    onShow: function () {   
      this.mytouchstart();
    },
    onHide: function () {
      // 页面关闭
      wx.stopRecord()
    },
    onUnload: function () {
      // 页面关闭
      wx.stopRecord()
    },
    mytouchstart: function () {
      console.log(1)
      var that = this
      //开始录音。当主动调用wx.stopRecord,
      //或者录音超过1分钟时自动结束录音,返回录音文件的临时文件路径。
      //当用户离开小程序时,此接口无法调用。
      wx.stopRecord()
      wx.startRecord({
        success: function (res) {
          console.log('录音成功' + JSON.stringify(res));
          that.setData({
            voiceButtonName: '语音识别',
            wavetoword: true,
            rewavetoword: true,
            recordingfailed: true,
            unrecognized: true,
            acousticwave: true,
            ensure: true,
            uploadfailed: true,
            wavewait: false,
            voicePlayButtonName: '开始播放',
            tempFilePath: res.tempFilePath
          })
          //上传语音文件至服务器
          wx.uploadFile({
            url: 'http://test2',
            filePath: res.tempFilePath,
            name: 'file',
            // header: {}, // 设置请求的 header
            formData: {
              'msg': 'voice'
            }, // HTTP 请求中其他额外的 form data
            success: function (res) {
              // success
              console.log('begin');
              console.log(res.data);
              var json = JSON.parse(res.data);
              console.log(json.result);
              var jsonResult = json.result;
              console.log(jsonResult);
              var item = jsonResult
              if (!item) {
                that.setData({
                  acousticwave: true,
                  wavewait: true,
                  wavetoword: true,
                  recordingfailed: true,
                  ensure: true,
                  uploadfailed: true,
                  rewavetoword: false,
                  unrecognized: false
                })
              }
              else if (item) {
                that.setData({
                  val: item,
                  acousticwave: true,
                  recordingfailed: true,
                  unrecognized: true,
                  ensure: false,
                  wavewait: true,
                  uploadfailed: true,
                  rewavetoword: false,
                  wavetoword: false
                })
              }
            },
            fail: function (err) {
              that.setData({
                val: item,
                acousticwave: true,
                recordingfailed: true,
                ensure: true,
                unrecognized: true,
                wavewait: true,
                uploadfailed: false,
                rewavetoword: false,
                wavetoword: true
              })
              // fail
              console.log(err);
            },
            onVoiceRecordEnd: function (res) {
                console.log(21)
            },
            complete: function () {
              // complete
            }
          })

        },
        fail: function (res) {
          //录音失败
          that.setData({
            voiceButtonName: '语音识别',
            acousticwave: true,
            wavewait: true,
            wavetoword: true,
            rewavetoword: false,
            uploadfailed: true,
            ensure: true,
            recordingfailed: false,
            unrecognized: true
          })
          console.log('录音失败' + JSON.stringify(res));
        }
      })
      setTimeout(function () {
        //结束录音
        wx.stopRecord()
      }, 5000)

    },
    mytouchend: function () {
      wx.stopRecord()
    }
回复

使用道具 举报

TA的社区排名

积分:暂未上榜

发帖:NO. 2352 名

在线:暂未上榜

最佳答案
0 

1

主题

24

帖子

166

积分

新人求带

积分
166
发表于 2017-5-19 22:52:59 | 显示全部楼层
参与/回复主题关闭
RE: 小程序录音求助 [修改]
高级模式
BColorImageLinkQuoteCodeSmilies@朋友

本版积分规则参与/回复主题       
微信开发者平台
首页小程序问答社区导读小程序导航微信广告平台自媒体广告平台快数微生态大会
消息 提醒 进行中的任务

请输入搜索内容
搜索
发布
微信小程序开发问答
微信小程序开发问答
+ 关注
关注:251
所属分类: 微信开发 微信小程序开发问答
1、清楚的描述问题,必要时请配图、代码等!点击查看如何发帖
2、本版为小
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


易域网-您身边的域名管家

henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

广告推广
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com