• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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