请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

背景音频如何先加载不播放?

谢老师您好!
我要做一个音频播放器,希望当播放器加载的时候,能加载音频的信息(名称和总时长),但是不播放。只有点击播放按钮才播放。
图片描述
现在遇到的问题是:

  1. 如果在组件attached生命周期函数中赋值src和title的话,直接就开始播放了,在赋值语句后面跟上.pause()音频也不能暂停;
    图片描述
  2. 如果在播放按钮的点击事件函数中赋值src和title的话,那么在第一次点击播放之前又不能显示名称和总时长。
    请问您这个问题应该怎么处理呢?

正在回答 回答被采纳积分+3

1回答

谢成 2021-10-12 09:32:31

BackgroundAudioManager只要设置src就会自动播放。

试试在onPlay事件中暂停

0 回复 有任何疑惑可以回复我~
  • 提问者 慕UI5549312 #1
    我试了,在onPlay中暂停倒是可以停下来。但是每次会播放0-0.4秒左右,如果超过0.2秒就能听到有声音了,这样感觉不太好。谢老师请问这零点几秒是在哪儿消耗的呢?
    
    //监听音频的播放
          theAudio.onPlay(()=>{
            if (this.data.resetAudio === true) {    //resetAudio是一个标记,在初加载和onEnded时设为true
              theAudio.pause()
              console.log('duration: ',theAudio.duration)        
              console.log('current time: ',theAudio.currentTime)        //这里打印出来的是0,但是
    //在onTimeUpdate里有同样的一句,打印出来的时间在0.1--0.45之间,而且能听到播放出的短暂的声音
            } else {
              console.log('1 theAudio played')
              this.setData({
              _isplaying:true
            })
            }
          })
    回复 有任何疑惑可以回复我~ 2021-10-12 12:18:03
  • 提问者 慕UI5549312 #2
    谢老师,在onPlay中暂停,时不时的出现这个错误,应该怎么处理呢?
    Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause(). https://goo.gl/LdLk22(env: Windows,mp,1.05.2109131; lib: 2.19.2)
    回复 有任何疑惑可以回复我~ 2021-10-15 10:51:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信