×

微信小游戏 教程

微信小游戏教程 基础

小游戏基础教程 快速上手小游戏基础教程 Adapter(适配器)小游戏基础教程 对引擎的支持小游戏基础教程 模块化

微信小游戏教程 能力

小游戏能力教程 音频播放小游戏能力教程 文件系统

微信小游戏教程 可用性

小游戏可用性教程 调试小游戏可用性教程 性能小游戏可用性教程 多线程 Worker

微信小游戏教程 开放能力

小游戏开放能力教程 用户授权小游戏开放能力教程 用户登录态签名小游戏开放能力教程 获取二维码小游戏开放能力教程 转发小游戏开放能力教程 用户数据的签名验证和加解密

微信小游戏 API

微信小游戏API 渲染

微信小游戏渲染API 画布

小游戏渲染API wx.createCanvas() 创建画布对象小游戏渲染API Canvas 画布对象小游戏渲染API RenderingContext 渲染环境小游戏渲染API Canvas.getContext 获取画布对象的绘图上下文小游戏渲染API Canvas.toTempFilePath小游戏渲染API Canvas.toDataURL()小游戏渲染API Canvas.toTempFilePathSync

微信小游戏渲染API 图片

小游戏渲染API Image wx.createImage() 创建一个图片对象小游戏渲染API Image 图片对象

微信小游戏渲染API 字体

小游戏渲染API wx.getTextLineHeight 获取一行文本的行高小游戏渲染API wx.loadFont 加载自定义字体文件

微信小游戏渲染API 帧率

小游戏渲染API wx.setPreferredFramesPerSecond小游戏渲染API cancelAnimationFrame小游戏渲染API requestAnimationFrame

微信小游戏API 系统

微信小游戏系统API 生命周期

小游戏系统API wx.exitMiniProgram 退出小游戏系统API wx.getLaunchOptionsSync小游戏系统API wx.onHide小游戏系统API wx.offHide小游戏系统API wx.onShow小游戏系统API wx.offShow

微信小游戏系统API 系统信息

小游戏系统API wx.getSystemInfo 获取系统信息小游戏系统API wx.getSystemInfoSync

微信小游戏系统API 系统事件

小游戏系统API wx.onAudioInterruptionEnd小游戏系统API wx.offAudioInterruptionEnd小游戏系统API wx.onAudioInterruptionBegin小游戏系统API wx.offAudioInterruptionBegin小游戏系统API wx.onError小游戏系统API wx.offError

微信小游戏系统API 触摸事件

小游戏系统API wx.onTouchStart小游戏系统API wx.offTouchStart小游戏系统API wx.onTouchMove小游戏系统API wx.offTouchMove小游戏系统API wx.onTouchEnd小游戏系统API wx.offTouchEnd小游戏系统API wx.onTouchCancel小游戏系统API wx.offTouchCancel小游戏系统API Touch 触点

微信小游戏API 设备

微信小游戏设备API 加速计

小游戏设备API wx.onAccelerometerChange小游戏设备API wx.startAccelerometer小游戏设备API wx.stopAccelerometer

微信小游戏设备API 电量

小游戏设备API wx.getBatteryInfo小游戏设备API wx.getBatteryInfoSync

微信小游戏设备API 剪贴板

小游戏设备API wx.getClipboardData小游戏设备API wx.setClipboardData

微信小游戏设备API 罗盘

小游戏设备API wx.onCompassChange小游戏设备API wx.startCompass小游戏设备API wx.stopCompass

微信小游戏设备API 网络

小游戏设备API wx.getNetworkType小游戏设备API wx.onNetworkStatusChange

微信小游戏设备API 屏幕

小游戏设备API wx.getScreenBrightness小游戏设备API wx.setKeepScreenOn小游戏设备API wx.setScreenBrightness

微信小游戏设备API 振动

小游戏设备API wx.vibrateShort小游戏设备API wx.vibrateLong

微信小游戏API 文件

小游戏文件API wx.getFileSystemManager小游戏文件API FileSystemManager 文件管理器小游戏文件API FileSystemManager.access小游戏文件API FileSystemManager.accessSync小游戏文件API FileSystemManager.copyFile 复制文件小游戏文件API FileSystemManager.copyFileSync小游戏文件API FileSystemManager.getFileInfo小游戏文件API FileSystemManager.getSavedFileList小游戏文件API FileSystemManager.mkdir 创建目录小游戏文件API FileSystemManager.mkdirSync小游戏文件API FileSystemManager.rmdir 删除目录小游戏文件API FileSystemManager.readdir小游戏文件API FileSystemManager.removeSavedFile小游戏文件API FileSystemManager.readFile小游戏文件API FileSystemManager.rename小游戏文件API FileSystemManager.readdirSync小游戏文件API FileSystemManager.renameSync小游戏文件API FileSystemManager.readFileSync小游戏文件API FileSystemManager.rmdirSync小游戏文件API FileSystemManager.saveFile小游戏文件API FileSystemManager.stat小游戏文件API Stats FileSystemManager.statSync小游戏文件API FileSystemManager.unlink 删除文件小游戏文件API FileSystemManager.unzip 解压文件小游戏文件API FileSystemManager.unlinkSync小游戏文件API FileSystemManager.unzipSync小游戏文件API FileSystemManager.writeFile 写文件小游戏文件API FileSystemManager.writeFileSync

微信小游戏API 位置

小游戏位置API wx.getLocation

微信小游戏API 网络

微信小游戏网络API 下载

小游戏网络API wx.downloadFile小游戏网络API DownloadTask小游戏网络API DownloadTask.abort小游戏网络API DownloadTask.onProgressUpdate

微信小游戏网络API 发起请求

小游戏网络API wx.request 发起网络请求小游戏网络API RequestTask 网络请求任务对象小游戏网络API RequestTask.abort

微信小游戏网络API WebSocket

小游戏网络API wx.connectSocket小游戏网络API wx.closeSocket 关闭 WeSocket 连接小游戏网络API wx.onSocketOpen小游戏网络API wx.onSocketClose小游戏网络API wx.onSocketMessage小游戏网络API wx.onSocketError小游戏网络API wx.sendSocketMessage小游戏网络API SocketTask小游戏网络API SocketTask.close小游戏网络API SocketTask.onOpen小游戏网络API SocketTask.onClose小游戏网络API SocketTask.onError小游戏网络API SocketTask.onMessage小游戏网络API SocketTask.send

微信小游戏网络API 上传

小游戏网络API wx.uploadFile小游戏网络API UploadTask小游戏网络API UploadTask.abort小游戏网络API UploadTask.onProgressUpdate

微信小游戏API 开放接口

微信小游戏开放接口API 登录

小游戏网络API wx.checkSession小游戏开放接口API wx.login

微信小游戏开放接口API 授权

小游戏开放接口API wx.authorize

微信小游戏开放接口API 用户信息

小游戏开放接口API wx.getUserInfo小游戏开放接口API UserInfo

微信小游戏开放接口API 设置

小游戏开放接口API wx.getSetting小游戏开放接口API wx.openSetting小游戏开放接口API AuthSetting

微信小游戏开放接口API 微信运动

小游戏开发接口API wx.getWeRunData

微信小游戏API 转发

小游戏转发API wx.getShareInfo小游戏转发API wx.hideShareMenu小游戏转发API wx.onShareAppMessage小游戏转发API wx.offShareAppMessage小游戏转发API wx.showShareMenu小游戏转发API wx.shareAppMessage小游戏转发API wx.updateShareMenu

微信小游戏API 调试

小游戏调试API wx.setEnableDebug

微信小游戏API 数据缓存

小游戏数据缓存API wx.clearStorage小游戏数据缓存API wx.clearStorageSync小游戏数据缓存API wx.getStorage小游戏数据缓存API wx.getStorageInfo小游戏数据缓存API wx.getStorageSync小游戏数据缓存API wx.getStorageInfoSync小游戏数据缓存API wx.removeStorage小游戏数据缓存API wx.removeStorageSync小游戏数据缓存API wx.setStorage小游戏数据缓存API wx.setStorageSync

微信小游戏API 界面

微信小游戏界面API 交互

小游戏界面API wx.hideToast小游戏界面API wx.hideLoading小游戏界面API wx.showModal小游戏界面API wx.showToast小游戏界面API wx.showLoading小游戏界面API wx.showActionSheet

微信小游戏界面API 键盘

小游戏界面API wx.hideKeyboard小游戏界面API wx.onKeyboardInput小游戏界面API wx.offKeyboardInput小游戏界面API wx.onKeyboardConfirm小游戏界面API wx.offKeyboardConfirm小游戏界面API wx.onKeyboardComplete小游戏界面API wx.offKeyboardComplete小游戏界面API wx.showKeyboard 显示键盘

微信小游戏界面API 菜单

小游戏界面API wx.setMenuStyle

微信小游戏界面API 窗口

小游戏界面API wx.onWindowResize小游戏界面API wx.offWindowResize

微信小游戏API Worker

小游戏API wx.createWorker小游戏API Worker小游戏API Worker.onMessage小游戏API Worker.postMessage小游戏API Worker.terminate

微信小游戏API 媒体

微信小游戏媒体API 音频

小游戏媒体API wx.createInnerAudioContext小游戏媒体API InnerAudioContextInnerAudioContext.destroyInnerAudioContext.offCanplayInnerAudioContext.onPauseInnerAudioContext.offPauseInnerAudioContext.onStopInnerAudioContext.offStopInnerAudioContext.onEndedInnerAudioContext.offEndedInnerAudioContext.onTimeUpdateInnerAudioContext.onPlayInnerAudioContext.onErrorInnerAudioContext.onWaitingInnerAudioContext.offWaitingInnerAudioContext.onSeekingInnerAudioContext.offSeekingInnerAudioContext.onSeekedInnerAudioContext.offSeekedInnerAudioContext.onCanplayInnerAudioContext.offPlayInnerAudioContext.offTimeUpdateInnerAudioContext.offErrorInnerAudioContext.pauseInnerAudioContext.playInnerAudioContext.seek

微信小游戏录音

RecorderManagerRecorderManager.startRecorderManager.pauseRecorderManager.resumeRecorderManager.stopRecorderManager.onStartRecorderManager.onPauseRecorderManager.onStopRecorderManager.onFrameRecordedRecorderManager.onErrorRecorderManager getRecorderManager

微信小游戏视频

VideoVideo.onWaitingVideo.onPlayVideo.onPauseVideo.onEndedVideo.onTimeUpdateVideo.onErrorVideo.playVideo.pauseVideo.stopVideo.seekVideo.requestFullScreenVideo.exitFullScreencreateVideo

微信小游戏性能

getPerformancePerformancePerformance.nowsetPreferredFramesPerSecondtriggerGC

微信小游戏数据上报

gameLoginReportgameLogoutReport

微信小游戏 工具

微信小游戏工具 概览

微信小游戏工具 界面

小游戏工具 启动页小游戏工具 主界面小游戏工具 菜单栏小游戏工具 工具栏小游戏工具 模拟器小游戏工具 设置页小游戏工具 项目页卡小游戏工具 快捷键小游戏工具 调试小游戏工具 命令行调用小游戏工具 HTTP 调用微信小程序开发文档 微信小游戏工具 下载

微信小游戏开发文档-小游戏音频播放能力教程


音频播放


小游戏内只有一种音频播放的方式,即使用 InnerAudioContext 来播放。

使用 InnerAudioContext 播放

通过 wx.createInnerAudioContext() 接口可以创建一个音频实例 innerAudioContext ,通过这个实例可以播放音频。

var audio = wx.createInnerAudioContext()
audio.src = url // src 可以设置 http(s) 的路径,本地文件路径或者代码包文件路径
audio.play()

在 iOS 系统上,默认遵循静音键设置。如果希望在静音时也能播放声音,可以设置 obeyMuteSwitchfalse

audio.obeyMuteSwitch = false

自动播放和循环播放

设置 autoplayloop 属性可以自动播放和循环播放音频,一般适用于背景音乐。

var bgm = wx.createInnerAudioContext()
bgm.autoplay = true
bgm.loop = true
bgm.src = url

回到前台时恢复背景音乐

当小游戏被隐藏到后台时,所有音频会被暂停,并在回到前台之前都不能再播放成功。

回到前台之后,被暂停的音频不会自动继续播放,如果小游戏有背景音乐的话,需要监听回到前台事件,并在收到回到前台事件之后调用背景音乐继续播放。

wx.onShow(function () {
  bgm.play()
})

处理音频中断事件

音频中断事件指的是在游戏期间,音频被系统打断时触发的事件。音频中断事件分为中断开始和中断结束事件,分别使用 wx.onAudioInterruptionBegin() 和 wx.onAudioInterruptionEnd() 来监听。

以下事件会触发音频中断开始事件:接到电话、闹钟响起、系统提醒、收到微信好友的语音/视频通话请求。被中断之后,小游戏内所有音频会被暂停,并在中断结束之前都不能再播放成功。

中断结束之后,被暂停的音频不会自动继续播放,如果小游戏有背景音乐的话,需要监听音频中断结束事件,并在收到中断结束事件之后调用背景音乐继续播放。

wx.onAudioInterruptionEnd(function () {
  bgm.play()
})

如果小游戏的逻辑强依赖音乐的播放,则需要在音频开始中断的时候暂停游戏

wx.onAudioInterruptionBegin(function () {
  // 暂停游戏
})

兼容性说明

目前两个平台完全支持的音频格式有 mp3、aac、wav。其他格式存在系统差异,不保证支持。

最佳实践

复用已有的音频实例

对于相同的音效,应该复用已有的音频实例,而不是重新创建一个音频实例。

及时销毁不需要的音频实例

如果一个音频不再需要使用了,可以调用 InnerAudioContext.destroy() 接口提前销毁这个实例。

Android 同时播放的音频数量限制

由于系统限制,在 Android 上最多同时播放 10 个音频,超过的部分会做有损处理,对开发者来说不感知,但开发者应尽量避免同时播放过多音频。



分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)