# Development Guidelines on Audio Playback - [When to Use](#section910413166166) - [Available APIs](#section1225204317126) ## 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 ![](figures/playback-status.png "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(); ```