setTimeout函数在一定时间后播放音频Vue.js

时间:2018-08-28 06:48:42

标签: javascript vue.js

我在Vue.js中将Vue-audio用作音频播放器。我有AudioPlayer组件。 我的代码:

didRotate(from fromInterfaceOrientation: UIInterfaceOrientation)

我遇到一条错误消息:

  

未捕获的TypeError:document.getElementById(...)。play不是   功能

2 个答案:

答案 0 :(得分:3)

您可以使用ref来引用当前的Vue组件。 检查source code时,我们可以使用getAudio来获取当前的音频分量

<template>
  <vue-audio id = "myAudio" :file= "file1" ref="currentAudio" />
</template>

<script>
import VueAudio from 'vue-audio';

export default {
  props: {
    file1: String,
  },
  components: {
    'vue-audio': VueAudio,
  },
  mounted (){
      var self = this
      setTimeout(function() {
        self.$refs.currentAudio.getAudio().play()
      }, 3000);
  },
  name: 'AudioPlayer',
};
</script>

答案 1 :(得分:0)

您可以改用元素的ref属性。

<template>
  <vue-audio id = "myAudio" :file= "file1" ref="myAudio" />
</template>

<script>
import VueAudio from 'vue-audio';

export default {
  props: {
    file1: String,
  },
  components: {
    'vue-audio': VueAudio,
  },
  mounted (){
      setTimeout(function() {
        this.$refs.myAudio.play()
      }, 3000);
  },
  name: 'AudioPlayer',
};
</script>