在pc上的浏览器都可以播放,在安卓手机上的浏览器都不能播放,而且使用手机微信就可以正常播放

来源:7-8 播放器歌曲播放功能实现

七宝白月轮

2017-11-16

按照老师敲的代码,在pc上的浏览器都可以播放,在安卓手机上的浏览器都不能播放但是其他效果都在,vconsole日志显示逻辑也都正常,而且使用微信打开url就可以正常播放,感觉this.$refs.audio.play()执行了但是没有效果,vuex状态也都对,我看也有同学问同样的问题,请问老师如何解决。

写回答

5回答

好吃的菜薹

2017-11-17

我的想法是既然需要手动触发,就让用户在开始进入的时候任何click事件都触发一次audio

//import VConsole from 'vconsole'
//var vConsole = new VConsole();
//console.log('Hello world');
 
fastclick.attach(document.body)
 
Vue.use(VueLazyload, {
    loading: require('common/image/default.png')
})
 
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App),
  data(){
      return {
          once: 0
      }
  },
  mounted(){
          document.onclick = () => {
              this.once++
              if(this.once<=1){
                   
                  let audioPlay = document.getElementById('audio')
                  audioPlay.play()
              }else{
                  document.onclick = null
              }      
          }    
  }
})


0
1
七宝白月轮
非常感谢!
2017-11-17
共1条回复

ustbhuangyi

2017-11-18

完美解决,参考最新代码,以下 commit 就是解决方案

https://github.com/ustbhuangyi/vue-music/commit/8fef850681e532b110733acfaa111ce4576da5ed

0
0

ustbhuangyi

2017-11-17

其实是 Vue 2.5+ 的坑,退回到 Vue 2.4 版本是没这个问题的

0
0

好吃的菜薹

2017-11-17

原因是安卓必须手动触发

0
0

ustbhuangyi

2017-11-16

试试这个地址是否有问题呢:http://ustbhuangyi.com/music/

0
1
七宝白月轮
老师,http://ustbhuangyi.com/music/这个没有问题,我现在的情况是,点击上一首,下一首都没有问题,点击播放cd也转,歌词运行也正常,就是播放时,进度条一直都不动,没有声音,拖动或点击进度条时,包括播放时左侧播放时间始终是0:00,以上问题仅出现在手机浏览器中,pc端,或用微信打开都没有问题
2017-11-17
共1条回复

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3804 问题

查看课程