音频播放

导入模块

import media from '@ohos.multimedia.media';

权限

createAudioPlayer()

创建音频播放的实例。

  • 参数:

  • 返回值:

类型

说明

AudioPlayer

返回AudioPlayer类实例,失败时返回null。

示例:

var audioplayer = media.createAudioPlayer(); 

AudioPlayer

音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过createAudioPlayer()构建一个AudioPlayer实例。

属性

名称

参数类型

可读

可写

说明

src

string

音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg),支持本地绝对路径(file://)

loop

boolean

音频循环播放属性,设置为'true'表示循环播放。

currentTime

number

音频的当前播放阶段。

duration

number

音频时长。

state

AudioState

音频播放的状态。

play(): void

开始播放音频资源。

  • 参数:

  • 返回值:

  • 示例:

    audioplayer.src = 'file:///data/media/sounds.mp4';
    audioplayer.on('play', () => {
      console.log('Playback starts.');
    });
    audioplayer.play();
    

pause(): void

暂停播放音频资源。

  • 参数:

  • 返回值:

  • 示例:

    audioplayer.src = 'file:///data/media/sounds.mp4';
    audioplayer.on('pause', () => {
      console.log('Playback paused.');
    });
    audioplayer.pause();
    

stop(): void

停止播放音频资源。

  • 参数:

  • 返回值:

  • 示例:

    audioplayer.src = 'file:///data/media/sounds.mp4';
    audioplayer.on('stop',() => {
      console.log('Playback stopped.');
    });
    audioplayer.stop();
    

seek(timeMs: number): void

跳转到指定播放位置。

  • 参数:

    参数名

    类型

    必填

    说明

    timeMs

    number

    指定的跳转时间节点。

  • 返回值:

  • 示例:

    audioplayer.src = 'file:///data/media/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:///data/media/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<number>): void

开始监听音频播放时间戳更新事件。

  • 参数:

    参数名

    类型

    必填

    说明

    type

    string

    播放事件回调类型,支持的事件为:'timeUpdate'。

    callback

    Callback<number>

    播放事件回调方法。

  • 返回值:

  • 示例:

    audioplayer.src = 'file://xxx/sounds.mp4';
    audioplayer.on('timeupdate', (newTime ) => {
      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:///data/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

音频播放停止。