1 Star 0 Fork 5.1K

youguilin / docs

forked from OpenHarmony / docs 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
development-guidelines-on-audio-playback.md 14.25 KB
一键复制 编辑 原始数据 按行查看 历史
mamingshuai 提交于 2021-06-02 01:00 . update OpenHarmony 2.0 Canary

Development Guidelines on Audio Playback

When to Use

You use audio playback APIs to convert audio data into audible analog signals, play the audio signals using output devices, and manage playback tasks.

Figure 1 Playback status

Available APIs

Table 1 media

API

Description

media.createAudioPlayer()

Creates an AudioPlayer instance.

AudioPlayer

Provides audio playback methods.

Table 2 AudioPlayer

API

Description

release()

Releases audio resources.

play()

Starts audio playback.

pause()

Pauses playback.

stop()

Stops playback.

setVolume(vol: number)

Sets playback volume.

seek(timeMs: number)

Changes the playback position.

src:string

Defines the URI of an audio file to play.

state:string

Defines a playback state.

autoplay:boolean

Defines whether playback starts automatically.

currenttime:number

Defines the current playback position.

duration:number

Defines the playback duration.

loop:boolean

Defines whether to loop audio playback.

muted:boolean

Defines whether to mute the audio.

on('play', function callback)

Listens for the playback start event.

on('pause', function callback)

Listens for the playback pause event.

on('stop', function callback)

Listens for the playback stop event.

on('ended',function callback)

Listens for the playback end event.

on('error', function callback)

Listens for the playback error event.

on('loaderdata', function callback)

Listens for the data loading event.

on('volumeChange', function callback)

Listens for the volume change event.

on('timeupdate', function callback)

Listens for the progress change event.

  1. Create an audio player.

    var player = media.createAudioPlayer();
  2. Set the listeners.

    player.on('play', (err, action) => {
        if (err) {
            console.log(`err returned in play() callback`);
            return;
         }
         console.info('Current Song duration: '+duration);
         console.log(`In play callback current time: ${player.currentTime}`);
         console.info('Current Player Status: '+player.state);
         console.info('Pause Mp3');
         player.pause();
    });
    player.on('pause', (err, action) => {
         if (err) {
             console.log(`err returned in pause() callback`);
             return;
          }
          console.log(`pause callback, state: ${player.state}`);
          console.info('Current Player Status: '+player.state);
          var currentTime = player.currenTime;
          console.info('Current Player Time: '+currentTime);
          player.seek(30000); //seek for 30 seconds
    });
    player.on('stop', (err, action) => {
        if (err) {
            console.log(`err returned in stop() callback`);
            return;
        }
        console.log(`stop callback, state: ${player.state}`);
    });
    player.on('dataLoad', (err, action) => {
        if (err) {
            console.log(`err returned in dataLoad() callback`);
            return;
        }
         console.log(`dataLoad callback is called, current time: ${player.currentTime}`);
         console.log(`Duration of the source: ${player.duration}`);
    });
    player.on('finish', (err, action) => {
         if (err) {
            console.log(`err returned in finish() callback`);
            return;
         }
         console.log(`Player finish callback is called`);
    });
    player.on('timeUpdate', (err, action) => {
        if (err) {
            console.log(`err returned in timeUpdate() callback`);
            return;
        }
        console.log(`In timeupdate callback current time: ${player.currentTime}`);
        var newTime = player.currentTime;
        if(newTime = 30000) {
            console.info('Seek success, new time : '+newTime);
        } else {
            console.info('Seek Failed');
         }
            player.stop();
    });
    player.on('durationchange', (err, action) => {
         if (err) {
             console.log(`err returned in durationchange callback`);
             return;
         }
         console.log(`Durationchange callback is called`);
    });
    player.on('error', (err) => {
         console.error(`player error: ${err.message}`);
    });
    
  3. Start playback.

    var audioSourceMp3 = 'file://test.mp3';
    player.src = audioSourceMp3;
    player.loop = true;
    player.play();
1
https://gitee.com/yougl/docs.git
git@gitee.com:yougl/docs.git
yougl
docs
docs
master

搜索帮助