小程序音频开发

作者: 石豌豆 | 来源:发表于2022-02-15 11:10 被阅读0次

    因为要开发小程序音频播放,最近折腾了一段时间,总结下一些问题,便于后面回顾,也方便大家开发的时候避免踩坑。

    直接进入正题,小程序音频有好几种,这里我们要根据实际情况去选择,这里大概列一下。

    音频类型 InnerAudioContext(内置音频) BackgroundAudioManager(背景音频)
    播放场景 只支持在小程序中播放,回到微信或者锁屏等会停止 可以微信中继续播放,ios可以锁屏在播放控制器中切换播放,安卓根据场景也会出现音乐播放控制器
    适用场景 交互的提示音、特效音乐等只在小程序中使用的场景 音乐、课程等内容,需要支持用户锁屏后继续收听
    是否需要资质 符合官方要求即可 符合官方要求同时需要在配置文件中添加 "requiredBackgroundModes": ["audio"], // 申明需要后台运行的能力 audio=后台音乐播放

    这里主要考虑了这两种音频播放功能,因为微信已经停止对audio组件的维护,现在都是使用api创建上下文,这两种除了使用场景不太一致,其他功能大体相同,后面就不单独列举这两个的差异了。

    接下来应该算是开发中的重头戏,也是最头疼的问题,ios和安卓兼容问题,这个问题在音频中属实是一个大坑,很多交互完全不同,如果只是做简单音频播放可能没啥感觉,但是如果做课程、音乐类的需要很多细致操作的话这些坑不得不面对,不得不填。
    大致描述下我们的需求,类似音频播放器,支持上一首下一首、快退快进、单曲顺序随机等基础功能,当然也支持锁屏和回到微信继续收听,下面就直接列坑点了

    功能 Ios Android
    stop事件 会清除播放器实例的src 不会清除src
    ended事件 播放结束会先清除src,切换源时会触发多次事件 不会清除src,且只触发一次事件
    切歌 不触发stop监听 触发stop监听事件
    切到微信后台 播放器stop,触发监听,重新进入src丢失,进度为0 播放器暂停,再次进入不丢失播放进度

    具体开发处理兼容问题我就不列代码了,找到问题原因再去根据情况优化处理就好,最后再提一个坑点

    就是seek这个方法,这个是我们用来设置播放时间的,但是时灵时不灵就很坑,参考其他大佬解决问题的方案,这里建议放在onTimeUpdate回调事件中去设置,相当于做个弥补方案。

    整理的主要是按照我碰到的问题整理的,大家知道坑点再根据实际情况处理即可。

    相关文章

      网友评论

        本文标题:小程序音频开发

        本文链接:https://www.haomeiwen.com/subject/ldwklrtx.html