# 音频播放 ## 导入模块 ``` 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

音频播放停止。