收藏
回答

音乐播放器热启动

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 getBackgroundAudioManager 客户端 6.7.3 2.2.5

- 需求的场景描述(希望解决的问题)

音乐播放到播放位置,以及跳转到播放的位置都需要启动时间,而且时间没有规律无法计算

- 希望提供的能力

如果可以的话热启动有没有解决方案,或者快进的功能  。恩 现在的话满足需求的话可能需要在百毫秒之内 启动或者跳转  ,已经木有办法了 望给予 解决方案

最后一次编辑于  2018-12-20  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • Eric Huang
    Eric Huang
    2018-12-25

    可以完善一下描述或提供一下代码片段吗?

    2018-12-25
    赞同
    回复 2
    • Carlos
      Carlos
      2018-12-25

      抱歉 描述的可能不是很清楚,代码在公司 这是我手写的 大概思路就是这样


      const audio = wx.getBackgroundAudioManager()//全局变量


      let dateNow = new Date();

      wcs = dateNow.getSeconds()

      wcss = dateNow.getMilliseconds()

      //获取当前时间

      //开始播放

      audio.play();


      let startPlayTimes;

      let startPlayTimess;

      audio.onPlay((res) => {

      //播放完成

      let dateNowPlay = new Date();

      startPlayTimes = dateNowPlay.getSeconds()

      startPlayTimess = dateNowPlay.getMilliseconds()

      //获取已播放当前时间

      //这里是播放完成的时间,用这个时间减去上面的 时间 得出 时间差(wcs 播放完成前的秒   wcss 播放完全前毫秒)

      audio.seek(当前播放时间和耗时操作时间);

      })


      audio.onSeeked((res) => {

      let dateNowSeek = new Date();

      startSeekTimes = dateNowSeek.getSeconds()

      startSeekTimess = dateNowSeek.getMilliseconds()


      //这里是跳转完成的一个时间 获取时间戳,的到秒以及毫秒,减去上面的播放时间得出 跳转之后的耗时

      })

      跳转完成的时间 是减去 上面onPlay 监听里面的时间

      大概就是这样了

      2018-12-25
      回复
    • Carlos
      Carlos
      2018-12-25

      就是我们播放音乐需要高度一致的时间,现在我们排除了网络时差,就差音乐启动时间的计算,现在的情况是音乐启动时间每次都有延迟,或者使用seek这个方法跳转的时间也是有延迟的,以上是我计算延迟的方式

      2018-12-25
      回复