【小程序】音频

本文详细介绍了微信小程序中的音频功能,包括内部音频和背景音频的区别、使用方法、系统播放控制以及录音功能。重点强调了背景音频在音乐类小程序中的持续播放特性,以及内部音频的适用场景和限制,如静音处理和音频中断事件的处理方式。
摘要由CSDN通过智能技术生成

比较常见的需求:当阈值超出或识别不通过时,模拟蜂鸣器响(准备相关音频文件)

小程序支持播放和录制音频。小程序播放音频的方式有两种:内部音频和背景音频。

  1. 内部音频支持用户在使用小程序过程中播放音效;
  2. 背景音频支持在用户离开小程序后继续播放音效。

显然根据前面提到的需求,选择1内部音频

  • 播放背景音频
    背景音频接口适用于音乐类小程序,通过wx.getBackgroundAudioManager() 接口可以获取全局唯一的背景音频管理器,所有关于背景音频的操作都由它来实现。
    微信内只有一个背景音频,一个小程序开始播放背景音频之后,就持有背景音频播放器,只要当前小程序持有背景音频播放器,即使这个小程序进入后台(即用户离开小程序),也可以继续使用背景音频接口,且当前小程序不会被微信主动回收;一旦背景音频播放器被抢占(可能是其他小程序、微信内其他音乐、其他 App 的音乐),则小程序不再持有背景音频播放器。
const BackgroundAudioManager =wx.getBackgroundAudioManager()
BackgroundAudioManager.src ='url’//设置了 src 之后会自动播放
  • 在系统播放面板显示和控制

通过设置标题、专辑名、歌手名、封面图等属性,小程序音频接口支持在系统音乐播放面板显示出来。通过响应系统面板的点击事件( onPrev , onNext ),可以实现列表播放。如图所示
在这里插入图片描述

BackgroundAudioManager.title='name'
BackgroundAudioManager.epname-"eng_name'
BackgroundAudioManager.singer ='sb'
BackgroundAudioManager.coverImgUrl ='photo_url'
BackgroundAudioManager.onPrev(()=>{
//切到上一曲
BackgroundAudioManager.src= lastSong
})
BackgroundAudioManager.onNext(()=> {
//切到下一曲
BackgroundAudioManager.src= nextSong
})
  • 播放内部音频

内部音频适用于所有小程序,尤其是游戏类目的小程序,如“跳一跳”。
通过 wx.createInnerAudioContext() 接口可以创建一个音频实例。

const audio = wx.createInnerAudiocontext()
audio.src= src
audio .play()

每个小程序可以同时持有和播放多个内部音频,但一旦小程序进入后台(onHide),所有内部音频都会被暂停,且在用户回到前台(即打开小程序)之前无法再被播放。

  • 静音下也能播放
    在 iOS 系统中,内部音频默认遵循静音键设置。如果希望在静音时也能播放,可以设置 obeyMuteSwitch 为 false 。
    安卓系统没有统一的静音开关,暂不支持此特性。
audio.obeyMuteSwitch = false
  • 处理音频中断事件【废弃】
    音频中断事件指的是在游戏期间,音频被系统打断时触发的事件。音频中断事件分为中断开始和中断结束事件,分别使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 来监听。【目前已经废弃】
    以下事件会触发音频中断开始事件:接到电话、闹钟响起、系统提醒、收到微信好友的语音/视频通话请求。被中断之后,小游戏内所有音频会被暂停,并在中断结束之前都不能再播放成功。
    中断结束之后,被暂停的音频不会自动继续播放,游戏可监听音频中断结束事件,并在收到中断结束事件之后调用背景音乐继续播放。

  • WebAudioContext v.s.InnerAudioContext
    WebAudioContext底层是按照webaudio标准接口实现的一套音频播放context,支持各种音效处理和播放;

InnerAudioContext是原有的播放音频context,只支持纯粹的播放、暂停、seek、停止等操作,不支持音效处理

  • 录制音频
  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值