# 音频播放 - [导入模块](#zh-cn_topic_0000001103383404_s56d19203690d4782bfc74069abb6bd71) - [权限](#zh-cn_topic_0000001103383404_section11257113618419) - [createAudioPlayer\(\)](#zh-cn_topic_0000001103383404_section582314017253) - [AudioPlayer](#zh-cn_topic_0000001103383404_section5174142818365) - [属性](#zh-cn_topic_0000001103383404_section4947115405) - [play\(\): void](#zh-cn_topic_0000001103383404_section964512672913) - [pause\(\): void](#zh-cn_topic_0000001103383404_section78173258296) - [stop\(\): void](#zh-cn_topic_0000001103383404_section122114334296) - [seek\(timeMs: number\): void](#zh-cn_topic_0000001103383404_section1387113816298) - [setVolume\(vol: number\): void](#zh-cn_topic_0000001103383404_section164235176552) - [reset\(\): void7+](#zh-cn_topic_0000001103383404_section1473283011356) - [release\(\): void](#zh-cn_topic_0000001103383404_section9224621145512) - [on\(type: string, callback: \(\) =\> void\): void](#zh-cn_topic_0000001103383404_section4486193914193) - [on\(type: string, callback: Callback\): void](#zh-cn_topic_0000001103383404_section632591014157) - [on\(type: string, callback: ErrorCallback\): void](#zh-cn_topic_0000001103383404_section92241852949) - [事件](#zh-cn_topic_0000001103383404_section1825183472812) - [AudioState](#zh-cn_topic_0000001103383404_section5181155710523) ## 导入模块 ``` import media from '@ohos.multimedia.media'; ``` ## 权限 无 ## createAudioPlayer\(\) 创建音频播放的实例。 - 参数: 无 - 返回值: 类型 说明 AudioPlayer 返回AudioPlayer类实例,失败时返回null。 **示例:** ``` var audioplayer = media.createAudioPlayer(); ``` ## AudioPlayer 音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过[createAudioPlayer\(\)](#zh-cn_topic_0000001103383404_section582314017253)构建一个AudioPlayer实例。 ### 属性 名称 参数类型 可读 可写 说明 src string 是 是 音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg),支持本地绝对路径(file://) loop boolean 是 是 音频循环播放属性,设置为'true'表示循环播放。 currentTime number 是 否 音频的当前播放阶段。 duration number 是 否 音频播放的时长。 state AudioState 是 否 音频播放的状态。 ### play\(\): void 开始播放音频资源。 - 参数: 无 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('play', () => { console.log('Playback starts.'); audioplayer.pause(); }); audioplayer.play(); ``` ### pause\(\): void 暂停播放音频资源。 - 参数: 无 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('pause', () => { console.log('Playback paused.'); }); audioplayer.pause(); ``` ### stop\(\): void 停止播放音频资源。 - 参数: 无 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('stop',() => { console.log('Playback stopped.'); }); audioplayer.stop(); ``` ### seek\(timeMs: number\): void 跳转到指定播放位置。 - 参数: 参数名 类型 必填 说明 timeMs number 是 指定的跳转时间节点。 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('timeupdate', (action) => { var newTime = audioplayer.currenTime; if(newTime >= 30000) { console.info('Seek succeeded. New time: ' + newTime); } else { console.info('Seek failed.'); } }); audioplayer.seek(30000); ``` ### setVolume\(vol: number\): void 设置音量。 - 参数: 参数名 类型 必填 说明 vol number 是 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('volumeChange', () => { console.log('Playback volume changed.'); }); audioplayer.setVolume(1); ``` ### reset\(\): void7+ 切换播放音频资源。 - 参数: 无 - 返回值: 无 - 示例: ``` audioplay.reset(); ``` ### release\(\): void 释放音频资源。 - 参数: 无 - 返回值: 无 - 示例: ``` audioplay.release(); ``` ### on\(type: string, callback: \(\) =\> void\): void 开始监听音频播放事件。 - 参数: 参数名 类型 必填 说明 type string 是 播放事件回调类型,支持的事件包括:'play' | 'pause' | 'stop' | 'dataLoad' |'reset'| |'finish' | 'volumeChange'。 callback ()=>void 是 播放事件回调方法。 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('play', () => { console.log('Playback starts.'); }); audioplayer.play(); ``` ### on\(type: string, callback: Callback\): void 开始监听音频播放时间戳更新事件。 - 参数: 参数名 类型 必填 说明 type string 是 播放事件回调类型,支持的事件为:'timeUpdate'。 callback Callback<number> 是 播放事件回调方法。 - 返回值: 无 - 示例: ``` audioplayer.src = 'file://xxx/sounds.mp4'; audioplayer.on('timeupdate', (action) => { var newTime = audioplayer.currenTime; if(newTime >= 30000) { console.info('Seek succeeded. New time: ' + newTime); } else { console.info('Seek failed.'); } }); audioplayer.seek(30000); ``` ### on\(type: string, callback: ErrorCallback\): void 开始监听音频播放错误事件。 - 参数: 参数名 类型 必填 说明 type string 是 播放错误事件回调类型'error'。 callback ErrorCallback 是 播放错误事件回调方法。 - 返回值: 无 - 示例: ``` audioplayer.src = 'file:///xxx/sounds.mp4'; audioplayer.on('error', (err) => { console.info('error callback info: ' + err); }); audioplayer.setVolume(30000); ``` ### 事件 AudioPlayer支持订阅以下事件。 名称 参数 描述 play - 完成play方法调用,音频开始播放,触发该事件。 pause - 完成pause方法调用,音频暂停播放,触发该事件。 stop - 完成stop方法调用,音频停止播放,触发该事件。 reset - 完成reset方法调用,释放音频播放资源,触发该事件。 dataLoad - 完成音频数据加载后触发该事件。 finish - 完成音频播放后触发该事件。 volumeChange - 播放音量改变后触发该事件。 timeUpdate - 完成seek方法调用,音频播放时间戳更新,触发该事件。 error callback 音频播放中发生错误,触发该事件。 **表 1** error事件的参数说明 参数名 类型 说明 callback ErrorCallback 错误事件的回调函数。 ## AudioState 音频播放的状态机。 名称 描述 idle 音频播放空闲。 playing 音频正在播放。 paused 音频暂停播放。 stopped 音频播放停止。
类型
说明
AudioPlayer
返回AudioPlayer类实例,失败时返回null。
名称
参数类型
可读
可写
src
string
是
音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg),支持本地绝对路径(file://)
loop
boolean
音频循环播放属性,设置为'true'表示循环播放。
currentTime
number
否
音频的当前播放阶段。
duration
音频播放的时长。
state
AudioState
音频播放的状态。
参数名
必填
timeMs
指定的跳转时间节点。
vol
指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。
type
播放事件回调类型,支持的事件包括:'play' | 'pause' | 'stop' | 'dataLoad' |'reset'| |'finish' | 'volumeChange'。
callback
()=>void
播放事件回调方法。
播放事件回调类型,支持的事件为:'timeUpdate'。
Callback<number>
播放错误事件回调类型'error'。
ErrorCallback
播放错误事件回调方法。
参数
描述
play
-
完成play方法调用,音频开始播放,触发该事件。
pause
完成pause方法调用,音频暂停播放,触发该事件。
stop
完成stop方法调用,音频停止播放,触发该事件。
reset
完成reset方法调用,释放音频播放资源,触发该事件。
dataLoad
完成音频数据加载后触发该事件。
finish
完成音频播放后触发该事件。
volumeChange
播放音量改变后触发该事件。
timeUpdate
完成seek方法调用,音频播放时间戳更新,触发该事件。
error
音频播放中发生错误,触发该事件。
错误事件的回调函数。
idle
音频播放空闲。
playing
音频正在播放。
paused
音频暂停播放。
stopped
音频播放停止。