1# Audio Playback<a name="EN-US_TOPIC_0000001103383404"></a> 2 3- [Modules to Import](#s56d19203690d4782bfc74069abb6bd71) 4- [Required Permissions](#section11257113618419) 5- [Methods](#section125675489541) 6- [createAudioPlayer\(\)](#section582314017253) 7- [Appendixes](#section1933416317165) 8- [AudioPlayer](#section5174142818365) 9 - [Attributes](#section4947115405) 10 - [play\(\)](#section964512672913) 11 - [pause\(\)](#section78173258296) 12 - [stop\(\)](#section122114334296) 13 - [seek\(number\)](#section1387113816298) 14 - [setVolume\(number\)](#section164235176552) 15 - [reset\(\)7+](#section1473283011356) 16 - [release\(\)](#section9224621145512) 17 - [Events](#section5453721192911) 18 - [play](#section87307411494) 19 - [pause](#section198217471590) 20 - [stop](#section437616531910) 21 - [dataLoad](#section982114219106) 22 - [timeUpdate](#section13687114181014) 23 - [volumeChange](#section139227715717) 24 - [finish](#section15181321181018) 25 - [error](#section5593132921016) 26 27- [AudioState](#section5181155710523) 28 29## Modules to Import<a name="s56d19203690d4782bfc74069abb6bd71"></a> 30 31``` 32import audio from '@ohos.multimedia.media'; 33``` 34 35## Required Permissions<a name="section11257113618419"></a> 36 37None 38 39## Methods<a name="section125675489541"></a> 40 41## createAudioPlayer\(\)<a name="section582314017253"></a> 42 43Creates an **AudioPlayer** instance to control audio playback. 44 45**Return Values** 46 47<a name="table482411406254"></a> 48<table><thead align="left"><tr id="row138241940172518"><th class="cellrowborder" valign="top" width="16.05%" id="mcps1.1.3.1.1"><p id="p28256407257"><a name="p28256407257"></a><a name="p28256407257"></a>Type</p> 49</th> 50<th class="cellrowborder" valign="top" width="83.95%" id="mcps1.1.3.1.2"><p id="p1582544017256"><a name="p1582544017256"></a><a name="p1582544017256"></a>Description</p> 51</th> 52</tr> 53</thead> 54<tbody><tr id="row0825540192520"><td class="cellrowborder" valign="top" width="16.05%" headers="mcps1.1.3.1.1 "><p id="p482574042511"><a name="p482574042511"></a><a name="p482574042511"></a><a href="#section5174142818365">AudioPlayer</a></p> 55</td> 56<td class="cellrowborder" valign="top" width="83.95%" headers="mcps1.1.3.1.2 "><p id="p14825194014258"><a name="p14825194014258"></a><a name="p14825194014258"></a>Returns the <strong id="b1322434113810"><a name="b1322434113810"></a><a name="b1322434113810"></a>AudioPlayer</strong> instance if the operation is successful; returns <strong id="b114701838153811"><a name="b114701838153811"></a><a name="b114701838153811"></a>null</strong> otherwise.</p> 57</td> 58</tr> 59</tbody> 60</table> 61 62**Example** 63 64``` 65var audioplayer = audio.createAudioPlayer(); 66``` 67 68## Appendixes<a name="section1933416317165"></a> 69 70## AudioPlayer<a name="section5174142818365"></a> 71 72Represents an audio player. 73 74### Attributes<a name="section4947115405"></a> 75 76<a name="table92548495595"></a> 77<table><thead align="left"><tr id="row132541749175917"><th class="cellrowborder" valign="top" width="15.8015801580158%" id="mcps1.1.6.1.1"><p id="p925404965919"><a name="p925404965919"></a><a name="p925404965919"></a>Name</p> 78</th> 79<th class="cellrowborder" valign="top" width="19.591959195919593%" id="mcps1.1.6.1.2"><p id="p325464914599"><a name="p325464914599"></a><a name="p325464914599"></a>Type</p> 80</th> 81<th class="cellrowborder" valign="top" width="7.660766076607661%" id="mcps1.1.6.1.3"><p id="p025484918596"><a name="p025484918596"></a><a name="p025484918596"></a>Readable</p> 82</th> 83<th class="cellrowborder" valign="top" width="8.29082908290829%" id="mcps1.1.6.1.4"><p id="p025414499590"><a name="p025414499590"></a><a name="p025414499590"></a>Writable</p> 84</th> 85<th class="cellrowborder" valign="top" width="48.65486548654865%" id="mcps1.1.6.1.5"><p id="p20254134925912"><a name="p20254134925912"></a><a name="p20254134925912"></a>Description</p> 86</th> 87</tr> 88</thead> 89<tbody><tr id="row18254849155915"><td class="cellrowborder" valign="top" width="15.8015801580158%" headers="mcps1.1.6.1.1 "><p id="p20254204935915"><a name="p20254204935915"></a><a name="p20254204935915"></a>src</p> 90</td> 91<td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.1.6.1.2 "><p id="p1525413497591"><a name="p1525413497591"></a><a name="p1525413497591"></a>string</p> 92</td> 93<td class="cellrowborder" valign="top" width="7.660766076607661%" headers="mcps1.1.6.1.3 "><p id="p8254749195914"><a name="p8254749195914"></a><a name="p8254749195914"></a>Yes</p> 94</td> 95<td class="cellrowborder" valign="top" width="8.29082908290829%" headers="mcps1.1.6.1.4 "><p id="p5255549115910"><a name="p5255549115910"></a><a name="p5255549115910"></a>Yes</p> 96</td> 97<td class="cellrowborder" valign="top" width="48.65486548654865%" headers="mcps1.1.6.1.5 "><p id="p72551449145914"><a name="p72551449145914"></a><a name="p72551449145914"></a>URI of the audio resources</p> 98</td> 99</tr> 100<tr id="row10255134945917"><td class="cellrowborder" valign="top" width="15.8015801580158%" headers="mcps1.1.6.1.1 "><p id="p82551349125910"><a name="p82551349125910"></a><a name="p82551349125910"></a>loop</p> 101</td> 102<td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.1.6.1.2 "><p id="p18255154913598"><a name="p18255154913598"></a><a name="p18255154913598"></a>boolean</p> 103</td> 104<td class="cellrowborder" valign="top" width="7.660766076607661%" headers="mcps1.1.6.1.3 "><p id="p525516497595"><a name="p525516497595"></a><a name="p525516497595"></a>Yes</p> 105</td> 106<td class="cellrowborder" valign="top" width="8.29082908290829%" headers="mcps1.1.6.1.4 "><p id="p2025504917593"><a name="p2025504917593"></a><a name="p2025504917593"></a>Yes</p> 107</td> 108<td class="cellrowborder" valign="top" width="48.65486548654865%" headers="mcps1.1.6.1.5 "><p id="p7255194925919"><a name="p7255194925919"></a><a name="p7255194925919"></a>Whether to loop audio playback</p> 109</td> 110</tr> 111<tr id="row18256049165911"><td class="cellrowborder" valign="top" width="15.8015801580158%" headers="mcps1.1.6.1.1 "><p id="p2256154919590"><a name="p2256154919590"></a><a name="p2256154919590"></a>currentTime</p> 112</td> 113<td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.1.6.1.2 "><p id="p10256849165915"><a name="p10256849165915"></a><a name="p10256849165915"></a>number</p> 114</td> 115<td class="cellrowborder" valign="top" width="7.660766076607661%" headers="mcps1.1.6.1.3 "><p id="p19256149155915"><a name="p19256149155915"></a><a name="p19256149155915"></a>Yes</p> 116</td> 117<td class="cellrowborder" valign="top" width="8.29082908290829%" headers="mcps1.1.6.1.4 "><p id="p3256174935919"><a name="p3256174935919"></a><a name="p3256174935919"></a>No</p> 118</td> 119<td class="cellrowborder" valign="top" width="48.65486548654865%" headers="mcps1.1.6.1.5 "><p id="p12256144995913"><a name="p12256144995913"></a><a name="p12256144995913"></a>Current playback position</p> 120</td> 121</tr> 122<tr id="row11256144911598"><td class="cellrowborder" valign="top" width="15.8015801580158%" headers="mcps1.1.6.1.1 "><p id="p92561949125910"><a name="p92561949125910"></a><a name="p92561949125910"></a>duration</p> 123</td> 124<td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.1.6.1.2 "><p id="p9256124914597"><a name="p9256124914597"></a><a name="p9256124914597"></a>number</p> 125</td> 126<td class="cellrowborder" valign="top" width="7.660766076607661%" headers="mcps1.1.6.1.3 "><p id="p1725654915911"><a name="p1725654915911"></a><a name="p1725654915911"></a>Yes</p> 127</td> 128<td class="cellrowborder" valign="top" width="8.29082908290829%" headers="mcps1.1.6.1.4 "><p id="p192562049125910"><a name="p192562049125910"></a><a name="p192562049125910"></a>No</p> 129</td> 130<td class="cellrowborder" valign="top" width="48.65486548654865%" headers="mcps1.1.6.1.5 "><p id="p125684995913"><a name="p125684995913"></a><a name="p125684995913"></a>Playback duration</p> 131</td> 132</tr> 133<tr id="row6256149115920"><td class="cellrowborder" valign="top" width="15.8015801580158%" headers="mcps1.1.6.1.1 "><p id="p2256144918596"><a name="p2256144918596"></a><a name="p2256144918596"></a>state</p> 134</td> 135<td class="cellrowborder" valign="top" width="19.591959195919593%" headers="mcps1.1.6.1.2 "><p id="p9256144918593"><a name="p9256144918593"></a><a name="p9256144918593"></a><a href="#section5181155710523">AudioState</a></p> 136</td> 137<td class="cellrowborder" valign="top" width="7.660766076607661%" headers="mcps1.1.6.1.3 "><p id="p102563495592"><a name="p102563495592"></a><a name="p102563495592"></a>Yes</p> 138</td> 139<td class="cellrowborder" valign="top" width="8.29082908290829%" headers="mcps1.1.6.1.4 "><p id="p625620497594"><a name="p625620497594"></a><a name="p625620497594"></a>No</p> 140</td> 141<td class="cellrowborder" valign="top" width="48.65486548654865%" headers="mcps1.1.6.1.5 "><p id="p162571549195920"><a name="p162571549195920"></a><a name="p162571549195920"></a>Playback status</p> 142</td> 143</tr> 144</tbody> 145</table> 146 147### play\(\)<a name="section964512672913"></a> 148 149Starts audio playback. 150 151**Example** 152 153``` 154audioplayer.on('dataload', (err, action) => { 155 if (err) { 156 console.info('Error returned in the prepare() callback.'); 157 return; 158 } 159 console.info('Start to play the audio.'); 160 audioplayer.play(); 161}; 162 163audioplayer.on('play', (err, action) => { 164 if (err) { 165 console.info('Error returned in the play() callback.'); 166 return; 167 } 168 console.info('Succeeded in playing the audio.'); 169}; 170audioplayer.src = 'common/mydream.mp3'; 171``` 172 173### pause\(\)<a name="section78173258296"></a> 174 175Pauses audio playback. 176 177**Example** 178 179``` 180audioplayer.on('dataload', (err, action) => { 181 if (err) { 182 console.info('Error returned in the prepare() callback.'); 183 return; 184 } 185 console.info('Start to play the audio.'); 186 audioplayer.play(); 187} 188audioplayer.on('play', (err, action) => { 189 if (err) { 190 console.info('Error returned in the play() callback.'); 191 return; 192 } 193 console.info('Start to pause audio playback.'); 194 audioplayer.pause(); 195}; 196audioplayer.on('pause', (err, action) => { 197 if (err) { 198 console.info('Error returned in the pause() callback.'); 199 return; 200 } 201 console.info('Succeeded in pausing audio playback.'); 202}; 203audioplayer.src = 'common/mydream.mp3'; 204``` 205 206### stop\(\)<a name="section122114334296"></a> 207 208Stops audio playback. 209 210**Example** 211 212``` 213audioplayer.on('dataload', (err, action) => { 214 if (err) { 215 console.info('Error returned in the prepare() callback.'); 216 return; 217 } 218 console.info('Start to play the audio.'); 219 audioplayer.play(); 220}; 221audioplayer.on('play', (err, action) => { 222 if (err) { 223 console.info('Error returned in the play() callback.'); 224 return; 225 } 226 console.info('Start to pause audio playback.'); 227 audioplayer.pause(); 228}; 229audioplayer.on('stop', (err, action) => { 230 if (err) { 231 console.info('Error returned in the stop() callback.'); 232 return; 233 } 234 console.info('Succeeded in stopping audio playback.'); 235}; 236audioplayer.src = 'common/mydream.mp3'; 237``` 238 239### seek\(number\)<a name="section1387113816298"></a> 240 241Goes to a specified playback position. 242 243**Parameters** 244 245<a name="table1442723852917"></a> 246<table><thead align="left"><tr id="row84261138172911"><th class="cellrowborder" valign="top" width="17.57%" id="mcps1.1.5.1.1"><p id="p204261938182919"><a name="p204261938182919"></a><a name="p204261938182919"></a>Name</p> 247</th> 248<th class="cellrowborder" valign="top" width="12.02%" id="mcps1.1.5.1.2"><p id="p1342683842920"><a name="p1342683842920"></a><a name="p1342683842920"></a>Type</p> 249</th> 250<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.5.1.3"><p id="p134260383297"><a name="p134260383297"></a><a name="p134260383297"></a>Mandatory</p> 251</th> 252<th class="cellrowborder" valign="top" width="62.89%" id="mcps1.1.5.1.4"><p id="p442663832912"><a name="p442663832912"></a><a name="p442663832912"></a>Description</p> 253</th> 254</tr> 255</thead> 256<tbody><tr id="row18427738202910"><td class="cellrowborder" valign="top" width="17.57%" headers="mcps1.1.5.1.1 "><p id="p184261338192913"><a name="p184261338192913"></a><a name="p184261338192913"></a>timeMs</p> 257</td> 258<td class="cellrowborder" valign="top" width="12.02%" headers="mcps1.1.5.1.2 "><p id="p1242643819295"><a name="p1242643819295"></a><a name="p1242643819295"></a>number</p> 259</td> 260<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.5.1.3 "><p id="p44261838112918"><a name="p44261838112918"></a><a name="p44261838112918"></a>Yes</p> 261</td> 262<td class="cellrowborder" valign="top" width="62.89%" headers="mcps1.1.5.1.4 "><p id="p16427163812913"><a name="p16427163812913"></a><a name="p16427163812913"></a>Target playback position</p> 263</td> 264</tr> 265</tbody> 266</table> 267 268**Example** 269 270``` 271audioplayer.on('dataload', (err, action) => { 272 if (err) { 273 console.info('Error returned in the prepare() callback.'); 274 return; 275 } 276 console.info('Start to play the audio.'); 277 audioplayer.play(); 278}; 279audioplayer.on('play', (err, action) => { 280 if (err) { 281 console.info('Error returned in the play() callback.'); 282 return; 283 } 284 console.info('Succeeded in playing the audio.') 285}; 286audioplayer.on('timeUpdate', (seekTime, action) => { 287 console.info('Seek time returned in the seek() callback: ' + seekTime); 288 var newTime = audioplayer.currenTime; 289 if(newTime == 30000) { 290 console.info('Seek succeeded. New time: ' + newTime); 291 } else { 292 console.info('Seek failed.'); 293 } 294}; 295audioplayer.src = 'common/mydream.mp3'; 296audioplayer.seek(30000); 297``` 298 299### setVolume\(number\)<a name="section164235176552"></a> 300 301Sets the volume. 302 303**Parameters** 304 305<a name="table1242391713555"></a> 306<table><thead align="left"><tr id="row14424217195517"><th class="cellrowborder" valign="top" width="17.57%" id="mcps1.1.5.1.1"><p id="p1424917135519"><a name="p1424917135519"></a><a name="p1424917135519"></a>Name</p> 307</th> 308<th class="cellrowborder" valign="top" width="12.02%" id="mcps1.1.5.1.2"><p id="p10424121795520"><a name="p10424121795520"></a><a name="p10424121795520"></a>Type</p> 309</th> 310<th class="cellrowborder" valign="top" width="7.5200000000000005%" id="mcps1.1.5.1.3"><p id="p1042415178559"><a name="p1042415178559"></a><a name="p1042415178559"></a>Mandatory</p> 311</th> 312<th class="cellrowborder" valign="top" width="62.89%" id="mcps1.1.5.1.4"><p id="p13424717125513"><a name="p13424717125513"></a><a name="p13424717125513"></a>Description</p> 313</th> 314</tr> 315</thead> 316<tbody><tr id="row13424171745513"><td class="cellrowborder" valign="top" width="17.57%" headers="mcps1.1.5.1.1 "><p id="p204241517125517"><a name="p204241517125517"></a><a name="p204241517125517"></a>vol</p> 317</td> 318<td class="cellrowborder" valign="top" width="12.02%" headers="mcps1.1.5.1.2 "><p id="p18424121755517"><a name="p18424121755517"></a><a name="p18424121755517"></a>number</p> 319</td> 320<td class="cellrowborder" valign="top" width="7.5200000000000005%" headers="mcps1.1.5.1.3 "><p id="p2042417176554"><a name="p2042417176554"></a><a name="p2042417176554"></a>Yes</p> 321</td> 322<td class="cellrowborder" valign="top" width="62.89%" headers="mcps1.1.5.1.4 "><p id="p9424171717557"><a name="p9424171717557"></a><a name="p9424171717557"></a>Volume to set. The value ranges from 0 to 1.</p> 323</td> 324</tr> 325</tbody> 326</table> 327 328**Example** 329 330``` 331audioplayer.on('dataload', (err, action) => { 332 if (err) { 333 console.error('Error returned in the prepare() callback.'); 334 return; 335 } 336 console.info('Start to play the audio.'); 337 audioplayer.play(); 338}; 339audioplayer.on('play', (err, action) => { 340 if (err) { 341 console.error('Error returned in the play() callback.'); 342 return; 343 } 344 console.info('Succeeded in playing the audio.') 345}; 346audioplayer.on('volumeChange', (err, action) => { 347 if (err) { 348 console.error('Error returned in the setVolume() callback.'); 349 return; 350 } 351 console.info('Playback volume changed.'); 352}; 353audioplayer.src = 'common/mydream.mp3'; 354audioplayer.setVolume(0.5); 355``` 356 357### reset\(\)<sup>7+</sup><a name="section1473283011356"></a> 358 359Switches the audio resource to be played. 360 361**Example** 362 363``` 364audioplayer.on('dataload', (err, action) => { 365 if (err) { 366 console.error('Error returned in the prepare() callback.'); 367 return; 368 } 369 console.info('Start to reset audio playback.'); 370 audioplayer.reset(); 371}; 372audioplayer.on('reset', (err, action) => { 373 if (err) { 374 console.error('Error returned in the reset() callback.'); 375 return; 376 } 377 console.info('Reset succeeded.'); 378}; 379audioplayer.src = 'common/mydream.mp3'; 380``` 381 382### release\(\)<a name="section9224621145512"></a> 383 384Releases audio resources. 385 386**Example** 387 388``` 389audioplay.release(); 390``` 391 392### Events<a name="section5453721192911"></a> 393 394### play<a name="section87307411494"></a> 395 396Triggered when **play\(\)** is called 397 398### pause<a name="section198217471590"></a> 399 400Triggered when **pause\(\)** is called 401 402### stop<a name="section437616531910"></a> 403 404Triggered when **stop\(\)** is called 405 406### dataLoad<a name="section982114219106"></a> 407 408Triggered when audio data is loaded 409 410### timeUpdate<a name="section13687114181014"></a> 411 412Triggered when the playback position changes 413 414### volumeChange<a name="section139227715717"></a> 415 416Triggered when playback volume changes 417 418### finish<a name="section15181321181018"></a> 419 420Triggered when playback is finished 421 422### error<a name="section5593132921016"></a> 423 424Triggered when a playback error occurs 425 426<a name="table24591722143619"></a> 427<table><thead align="left"><tr id="row1945962219364"><th class="cellrowborder" valign="top" width="24.060000000000002%" id="mcps1.1.4.1.1"><p id="p84591522103610"><a name="p84591522103610"></a><a name="p84591522103610"></a>Name</p> 428</th> 429<th class="cellrowborder" valign="top" width="25.25%" id="mcps1.1.4.1.2"><p id="p11459102243616"><a name="p11459102243616"></a><a name="p11459102243616"></a>Type</p> 430</th> 431<th class="cellrowborder" valign="top" width="50.690000000000005%" id="mcps1.1.4.1.3"><p id="p14591922113616"><a name="p14591922113616"></a><a name="p14591922113616"></a>Description</p> 432</th> 433</tr> 434</thead> 435<tbody><tr id="row2459622183611"><td class="cellrowborder" valign="top" width="24.060000000000002%" headers="mcps1.1.4.1.1 "><p id="p17338122234119"><a name="p17338122234119"></a><a name="p17338122234119"></a>callback</p> 436</td> 437<td class="cellrowborder" valign="top" width="25.25%" headers="mcps1.1.4.1.2 "><p id="p174601822193612"><a name="p174601822193612"></a><a name="p174601822193612"></a>ErrorCallback</p> 438</td> 439<td class="cellrowborder" valign="top" width="50.690000000000005%" headers="mcps1.1.4.1.3 "><p id="p7460222123612"><a name="p7460222123612"></a><a name="p7460222123612"></a>Callback function for handling this event</p> 440</td> 441</tr> 442</tbody> 443</table> 444 445## AudioState<a name="section5181155710523"></a> 446 447Describes playback status. 448 449<a name="table919114616314"></a> 450<table><thead align="left"><tr id="row31917610318"><th class="cellrowborder" valign="top" width="33.739999999999995%" id="mcps1.1.3.1.1"><p id="p219196531"><a name="p219196531"></a><a name="p219196531"></a>Name</p> 451</th> 452<th class="cellrowborder" valign="top" width="66.25999999999999%" id="mcps1.1.3.1.2"><p id="p14191563313"><a name="p14191563313"></a><a name="p14191563313"></a>Description</p> 453</th> 454</tr> 455</thead> 456<tbody><tr id="row3427194315719"><td class="cellrowborder" valign="top" width="33.739999999999995%" headers="mcps1.1.3.1.1 "><p id="p642711431172"><a name="p642711431172"></a><a name="p642711431172"></a>idle</p> 457</td> 458<td class="cellrowborder" valign="top" width="66.25999999999999%" headers="mcps1.1.3.1.2 "><p id="p24281543777"><a name="p24281543777"></a><a name="p24281543777"></a>Audio playback is idle.</p> 459</td> 460</tr> 461<tr id="row2019146539"><td class="cellrowborder" valign="top" width="33.739999999999995%" headers="mcps1.1.3.1.1 "><p id="p201913617311"><a name="p201913617311"></a><a name="p201913617311"></a>playing</p> 462</td> 463<td class="cellrowborder" valign="top" width="66.25999999999999%" headers="mcps1.1.3.1.2 "><p id="p81911362316"><a name="p81911362316"></a><a name="p81911362316"></a>The audio is being played.</p> 464</td> 465</tr> 466<tr id="row11912612316"><td class="cellrowborder" valign="top" width="33.739999999999995%" headers="mcps1.1.3.1.1 "><p id="p9191136731"><a name="p9191136731"></a><a name="p9191136731"></a>paused</p> 467</td> 468<td class="cellrowborder" valign="top" width="66.25999999999999%" headers="mcps1.1.3.1.2 "><p id="p419166738"><a name="p419166738"></a><a name="p419166738"></a>Audio playback is paused.</p> 469</td> 470</tr> 471<tr id="row111912617314"><td class="cellrowborder" valign="top" width="33.739999999999995%" headers="mcps1.1.3.1.1 "><p id="p9191156333"><a name="p9191156333"></a><a name="p9191156333"></a>stopped</p> 472</td> 473<td class="cellrowborder" valign="top" width="66.25999999999999%" headers="mcps1.1.3.1.2 "><p id="p2019215618316"><a name="p2019215618316"></a><a name="p2019215618316"></a>Audio playback is stopped.</p> 474</td> 475</tr> 476</tbody> 477</table> 478 479