收藏
回答

自定义了一个组件,在开发工具里面能正常运行,真机调试为啥获取不到组件中定义的数据?

  1. 代码片段:https://developers.weixin.qq.com/s/496dXZmG7pf1
  2. 问题描述:自定义组件,然后在页面上引用,页面引用的时候设置了参数,在组件中使用这个参数;开发者工具里面参数获取正常,真机调试获取不到;
  3. 代码:

组件部分:

/** JS*/
// component/textToVoice.js
var Api = require('../../api/residents')
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    voiceText: {
      type: String,
      value: '欢迎使用',
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },
  /**
   * 组件的方法列表
   */
  methods: {
    textToVoice: function () {
      /*********************************************************************/
      console.log(this.properties.voiceText)//此处真机无数据,开发者工具有数据*/
      /*********************************************************************/
      let that = this
      let filePath = wx.env.USER_DATA_PATH+"/"+that.properties.voiceText+".mp3"
      wx.getFileInfo({
        filePath:filePath,
        success: function (res) {
          console.log(res)
          play(filePath)
        },
        fail:function () {
          wx.downloadFile({
            url: Api.getVoiceByText+"?text="+that.data.voiceText,
            filePath: filePath,
            success:function (result) {
              play(result.filePath)
            },
            fail:function (err) {
              console.log("打印下错误",err)
            }
          })
        }
      })

    },
  }
})
var play = function (filePath) {
  console.log("准备播放声音",filePath)
  let InnerAudioContext = wx.createInnerAudioContext()
  InnerAudioContext.src = filePath
  InnerAudioContext.play()
}



===== wxml====

{{voiceText}}



组件使用

json

"usingComponents": {
  "text-voice": "./component/textToVoice/textToVoice"
}

wxml

    居民
  
    社区工作人员
  

3.效果

最后一次编辑于  2020-03-20
回答关注问题邀请回答
收藏

2 个回答

  • LokNum🎣
    LokNum🎣
    2020-03-20
       wx.downloadFile({
                url: Api.getVoiceByText+"?text="+that.data.voiceText,
                filePath: filePath,
                success:function (result) {
                  play(result.filePath)
                },
                fail:function (err) {
                  console.log("打印下错误",err)
                }
              })
    

    这里是网络地址?有看打印吗?

    2020-03-20
    有用
    回复 3
    • 王业群
      王业群
      2020-03-20
      这个地方是没有问题的,就是that.data.voiceText是空值
      2020-03-20
      回复
    • LokNum🎣
      LokNum🎣
      2020-03-20回复王业群
      properties换成data试试
      2020-03-20
      回复
    • 王业群
      王业群
      2020-03-20回复LokNum🎣
      试过了
      2020-03-20
      回复
  • 是小白啊
    是小白啊
    2020-03-20

    麻烦提供能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-03-20
    有用
    回复 5
    • 王业群
      王业群
      2020-03-20
      https://developers.weixin.qq.com/s/496dXZmG7pf1
      2020-03-20
      回复
    • 是小白啊
      是小白啊
      2020-03-20回复王业群
      预览正常吗?
      2020-03-20
      回复
    • 王业群
      王业群
      2020-03-20
      预览可以获取到文字,但是不能播放声音
      2020-03-20
      回复
    • 是小白啊
      是小白啊
      2020-03-21回复王业群
      播放的链接麻烦提供下
      2020-03-21
      回复
    • 王业群
      王业群
      2020-03-21回复是小白啊
      没有播放链接,走的是文字识别的接口,返回结果下载成音频存本地保存的;
      我开下内网穿透,应该代码片段就可以直接播放了
      2020-03-21
      回复
登录 后发表内容
问题标签