# 音频播放
## 导入模块
```
import media from '@ohos.multimedia.media';
```
## 权限
无
## createAudioPlayer\(\)
创建音频播放的实例。
- 参数:
无
- 返回值:
**示例:**
```
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
|
音频播放停止。
|