InnerAudioContext qg.createInnerAudioContext()

支持最低平台版本号'1031' (minPlatformVersion>='1031')

创建音频

注意

  1. 游戏中使用到的音频尽可能使用本地文件的形式播放,尤其是背景音乐等较大音频,可以在首次运行游戏时调用 qg.downloadFile 接口下载到本地路径中, 游戏运行时以此为音频资源路径播放

  2. 音频较少时可以直接存储到项目资源文件夹中,较多则可以在用户首次运行游戏走进度条时, 统一下载到本地后再播放

  3. 如游戏中需要用网络链接形式播放音频,要保证同一个音频复用同一个实例(即不重复调用 qg.createInnerAudioContext() 创建同一音频),避免每次播放都创建新实例

返回值

InnerAudioContext 对象,可以通过设置该对象上的属性和调用该对象上的方法来控制音频

属性

  • string src

音频资源的地址,用于直接播放,支持网络链接

  • number startTime

开始播放的位置(单位:s),默认为 0

  • boolean autoplay

是否自动播放,默认是 false

  • boolean loop

是否循环播放,默认是 false

  • string currentTime

当前音频的播放位置,单位 s。只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位(只读)

  • number volume

音量。范围 0~1,默认是 1

  • number duration

当前音频的长度(单位 s)。只有在当前有合法的 src 时返回(只读)

  • boolean paused

当前是是否暂停或停止状态(只读)

  • number buffered

音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲(只读)

方法

InnerAudioContext.play()

播放

InnerAudioContext.pause()

暂停。暂停后的音频再播放会从暂停处开始播放

InnerAudioContext.stop()

停止。停止后的音频再播放会从头开始播放。

InnerAudioContext.seek(number position)

跳转到指定位置

  • number position 跳转的时间,单位 s。精确到小数点后 3 位,即支持 ms 级别精确度

InnerAudioContext.destroy()

销毁音频实例(但是 js 对象还会存在)

InnerAudioContext.onCanplay(function callback)

监听音频进入可以播放状态的事件

InnerAudioContext.offCanplay(function callback)

取消监听音频进入可以播放状态的事件

InnerAudioContext.onPlay(function callback)

监听音频播放事件

InnerAudioContext.offPlay(function callback)

取消监听音频播放事件

InnerAudioContext.onPause(function callback)

监听音频暂停事件

InnerAudioContext.offPause(function callback)

取消监听音频暂停事件

InnerAudioContext.onStop(function callback)

监听音频停止事件

InnerAudioContext.offStop(function callback)

取消监听音频停止事件

InnerAudioContext.onEnded(function callback)

监听音频自然播放至结束的事件

InnerAudioContext.offEnded(function callback)

取消监听音频自然播放至结束的事件

InnerAudioContext.onTimeUpdate(function callback)

监听音频播放进度更新事件

InnerAudioContext.offTimeUpdate(function callback)

取消监听音频播放进度更新事件

InnerAudioContext.onError(function callback)

监听音频播放错误事件

InnerAudioContext.offError(function callback)

取消监听音频播放错误事件

InnerAudioContext.onWaiting(function callback)

监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发

InnerAudioContext.offWaiting(function callback)

取消监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发

InnerAudioContext.onSeeking(function callback)

监听音频进行跳转操作的事件

InnerAudioContext.offSeeking(function callback)

取消监听音频进行跳转操作的事件

InnerAudioContext.onSeeked(function callback)

监听音频完成跳转操作的事件

InnerAudioContext.offSeeked(function callback)

取消监听音频完成跳转操作的事件


示例代码:

var audio = qg.createInnerAudioContext()
audio.loop = true
audio.volume = 0.7
audio.autoplay = false
var playSound = function() {
  audio.play()
  audio.offCanplay(playSound)
}
audio.onCanplay(playSound)
audio.src = 'res/demo.mp3'

支持的 audio 的音频格式

MP3、WAVE、FLAC、Ogg、WAV、MSE

© 2020 OPPO. All rights reserved.

results matching ""

    No results matching ""