1e41f4b71Sopenharmony_ci# ringtonePlayer (铃声播放器)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci铃声播放器提供了系统铃声的播放、配置、获取信息等功能。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciringtonePlayer需要和[@ohos.multimedia.systemSoundManager](js-apis-systemSoundManager-sys.md)配合使用,才能完成管理系统铃声的功能。
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci> **说明:**
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10e41f4b71Sopenharmony_ci> - 本模块接口为系统接口。
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci## 导入模块
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci```ts
15e41f4b71Sopenharmony_ciimport { systemSoundManager } from '@kit.AudioKit';
16e41f4b71Sopenharmony_ci```
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci## RingtoneOptions
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci铃声参数选项。
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci| 名称      | 类型            |必填   | 说明                              |
27e41f4b71Sopenharmony_ci| --------- | -------------- | ---- | --------------------------------- |
28e41f4b71Sopenharmony_ci| volume    | number         | 是   | 指定的相对音量大小,取值范围为[0.00, 1.00],1表示最大音量,即100%。 |
29e41f4b71Sopenharmony_ci| loop      | boolean        | 是   | 是否开启循环播放,true表示开启循环播放,false表示不开启循环播放。 |
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci## RingtonePlayer
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci系统铃声播放器,提供系统铃声的参数设置、参数获取、播放、停止等功能。在调用RingtonePlayer的接口前,需要先通过[getSystemRingtonePlayer](js-apis-systemSoundManager-sys.md#getsystemringtoneplayer)创建实例。
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci### 属性
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci| 名称  | 类型                        | 可读 | 可写 | 说明               |
42e41f4b71Sopenharmony_ci| ----- | -------------------------- | ---- | ---- | ------------------ |
43e41f4b71Sopenharmony_ci| state | [media.AVPlayerState](../apis-media-kit/js-apis-media.md#avplayerstate9) | 是   | 否   | 音频渲染器的状态。 |
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci**示例:**
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci```ts
48e41f4b71Sopenharmony_ciimport { media } from '@kit.MediaKit';
49e41f4b71Sopenharmony_cilet state: media.AVPlayerState = systemRingtonePlayer.state;
50e41f4b71Sopenharmony_ci```
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci### getTitle
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_cigetTitle(callback: AsyncCallback<string>): void
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci获取铃声标题,使用callback方式异步返回结果。
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci**参数:**
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
65e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
66e41f4b71Sopenharmony_ci| callback | AsyncCallback<string>              | 是   | 回调返回获取的铃声标题。     |
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**示例:**
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci```ts
71e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_cisystemRingtonePlayer.getTitle((err: BusinessError, value: string) => {
74e41f4b71Sopenharmony_ci  if (err) {
75e41f4b71Sopenharmony_ci    console.error(`Failed to get system ringtone title. ${err}`);
76e41f4b71Sopenharmony_ci    return;
77e41f4b71Sopenharmony_ci  }
78e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate the value of the system ringtone title is obtained ${value}.`);
79e41f4b71Sopenharmony_ci});
80e41f4b71Sopenharmony_ci```
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci### getTitle
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_cigetTitle(): Promise<string>
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci获取铃声标题,使用Promise方式异步返回结果。
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci**返回值:**
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci| 类型                  | 说明                              |
95e41f4b71Sopenharmony_ci| --------------------- | -------------------------------- |
96e41f4b71Sopenharmony_ci| Promise<string> | Promise回调返回获取的系统铃声标题。 |
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci**示例:**
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci```ts
101e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_cisystemRingtonePlayer.getTitle().then((value: string) => {
104e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate that the value of the system ringtone title is obtained ${value}.`);
105e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
106e41f4b71Sopenharmony_ci  console.error(`Failed to get the system ringtone title ${err}`);
107e41f4b71Sopenharmony_ci});
108e41f4b71Sopenharmony_ci```
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci### getAudioRendererInfo
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_cigetAudioRendererInfo(callback: AsyncCallback<audio.AudioRendererInfo>): void
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci获取铃声使用的AudioRendererInfo,使用callback方式异步返回结果。
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci**参数:**
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
123e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
124e41f4b71Sopenharmony_ci| callback | AsyncCallback<[audio.AudioRendererInfo](../apis-audio-kit/js-apis-audio.md#audiorendererinfo8)> | 是 | 回调返回获取的AudioRendererInfo。 |
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**示例:**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci```ts
129e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit';
130e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_cilet audioRendererInfo: audio.AudioRendererInfo | undefined = undefined;
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_cisystemRingtonePlayer.getAudioRendererInfo((err: BusinessError, value: audio.AudioRendererInfo) => {
135e41f4b71Sopenharmony_ci  if (err) {
136e41f4b71Sopenharmony_ci    console.error(`Failed to get ringtone AudioRendererInfo. ${err}`);
137e41f4b71Sopenharmony_ci    return;
138e41f4b71Sopenharmony_ci  }
139e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate the value of the ringtone AudioRendererInfo is obtained.`);
140e41f4b71Sopenharmony_ci  audioRendererInfo = value;
141e41f4b71Sopenharmony_ci});
142e41f4b71Sopenharmony_ci```
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci### getAudioRendererInfo
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_cigetAudioRendererInfo(): Promise<audio.AudioRendererInfo>
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci获取铃声使用的AudioRendererInfo,使用Promise方式异步返回结果。
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci**返回值:**
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci| 类型                | 说明                            |
157e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- |
158e41f4b71Sopenharmony_ci| Promise<[audio.AudioRendererInfo](../apis-audio-kit/js-apis-audio.md#audiorendererinfo8)> | Promise回调返回获取的AudioRendererInfo。 |
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci**示例:**
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci```ts
163e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit';
164e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_cilet audioRendererInfo: audio.AudioRendererInfo | undefined = undefined;
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_cisystemRingtonePlayer.getAudioRendererInfo().then((value: audio.AudioRendererInfo) => {
169e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate that the value of the ringtone AudioRendererInfo is obtained ${value}.`);
170e41f4b71Sopenharmony_ci  audioRendererInfo = value;
171e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
172e41f4b71Sopenharmony_ci  console.error(`Failed to get the ringtone AudioRendererInfo ${err}`);
173e41f4b71Sopenharmony_ci});
174e41f4b71Sopenharmony_ci```
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci### configure
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ciconfigure(options: RingtoneOptions, callback: AsyncCallback<void>): void
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci配置铃声播放参数,使用callback方式异步返回结果。
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci**参数:**
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
189e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
190e41f4b71Sopenharmony_ci| options  | [RingtoneOptions](#ringtoneoptions)      | 是   | 指定铃声参数。             |
191e41f4b71Sopenharmony_ci| callback | AsyncCallback<void>                | 是   | 回调返回配置参数成功或失败。 |
192e41f4b71Sopenharmony_ci
193e41f4b71Sopenharmony_ci**示例:**
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci```ts
196e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ciclass RingtoneOptions {
199e41f4b71Sopenharmony_ci  volume: number = 0;
200e41f4b71Sopenharmony_ci  loop: boolean = false;
201e41f4b71Sopenharmony_ci}
202e41f4b71Sopenharmony_cilet ringtoneOptions: RingtoneOptions = {volume: 0.5, loop: true};
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_cisystemRingtonePlayer.configure(ringtoneOptions, (err: BusinessError) => {
205e41f4b71Sopenharmony_ci  if (err) {
206e41f4b71Sopenharmony_ci    console.error(`Failed to configure ringtone options. ${err}`);
207e41f4b71Sopenharmony_ci    return;
208e41f4b71Sopenharmony_ci  }
209e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate a successful setting of ringtone options.`);
210e41f4b71Sopenharmony_ci});
211e41f4b71Sopenharmony_ci```
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci### configure
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ciconfigure(options: RingtoneOptions): Promise<void>
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci配置铃声播放参数,使用Promise方式异步返回结果。
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci**参数:**
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
226e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
227e41f4b71Sopenharmony_ci| options  | [RingtoneOptions](#ringtoneoptions)      | 是   | 指定铃声参数。              |
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**返回值:**
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci| 类型                | 说明                            |
232e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- |
233e41f4b71Sopenharmony_ci| Promise<void> | Promise回调返回配置参数成功或失败。 |
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci**示例:**
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci```ts
238e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ciclass RingtoneOptions {
241e41f4b71Sopenharmony_ci  volume: number = 0;
242e41f4b71Sopenharmony_ci  loop: boolean = false;
243e41f4b71Sopenharmony_ci}
244e41f4b71Sopenharmony_cilet ringtoneOptions: RingtoneOptions = {volume: 0.5, loop: true};
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_cisystemRingtonePlayer.configure(ringtoneOptions).then(() => {
247e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate a successful setting of ringtone options.`);
248e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
249e41f4b71Sopenharmony_ci  console.error(`Failed to configure ringtone options. ${err}`);
250e41f4b71Sopenharmony_ci});
251e41f4b71Sopenharmony_ci```
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci### start
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_cistart(callback: AsyncCallback<void>): void
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci开始播放铃声,使用callback方式异步返回结果。
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**参数:**
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
266e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
267e41f4b71Sopenharmony_ci| callback | AsyncCallback<void>                | 是   | 回调返回开始播放成功或失败。 |
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci**示例:**
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci```ts
272e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_cisystemRingtonePlayer.start((err: BusinessError) => {
275e41f4b71Sopenharmony_ci  if (err) {
276e41f4b71Sopenharmony_ci    console.error(`Failed to start playing ringtone. ${err}`);
277e41f4b71Sopenharmony_ci    return;
278e41f4b71Sopenharmony_ci  }
279e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate a successful starting of ringtone.`);
280e41f4b71Sopenharmony_ci});
281e41f4b71Sopenharmony_ci```
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci### start
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_cistart(): Promise<void>
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_ci开始播放铃声,使用Promise方式异步返回结果。
288e41f4b71Sopenharmony_ci
289e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ci**返回值:**
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci| 类型                | 说明                              |
296e41f4b71Sopenharmony_ci| ------------------- | -------------------------------- |
297e41f4b71Sopenharmony_ci| Promise<void> | Promise回调返回开始播放成功或失败。 |
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci**示例:**
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci```ts
302e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_cisystemRingtonePlayer.start().then(() => {
305e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate a successful starting of ringtone.`);
306e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
307e41f4b71Sopenharmony_ci  console.error(`Failed to start playing ringtone. ${err}`);
308e41f4b71Sopenharmony_ci});
309e41f4b71Sopenharmony_ci```
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci### stop
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_cistop(callback: AsyncCallback<void>): void
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ci停止播放铃声,使用callback方式异步返回结果。
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci**参数:**
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
324e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
325e41f4b71Sopenharmony_ci| callback | AsyncCallback<void>                | 是   | 回调返回停止播放成功或失败。 |
326e41f4b71Sopenharmony_ci
327e41f4b71Sopenharmony_ci**示例:**
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci```ts
330e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
331e41f4b71Sopenharmony_ci
332e41f4b71Sopenharmony_cisystemRingtonePlayer.stop((err: BusinessError) => {
333e41f4b71Sopenharmony_ci  if (err) {
334e41f4b71Sopenharmony_ci    console.error(`Failed to stop playing ringtone. ${err}`);
335e41f4b71Sopenharmony_ci    return;
336e41f4b71Sopenharmony_ci  }
337e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate a successful stopping of ringtone.`);
338e41f4b71Sopenharmony_ci});
339e41f4b71Sopenharmony_ci```
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci### stop
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_cistop(): Promise<void>
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci停止播放铃声,使用Promise方式异步返回结果。
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
350e41f4b71Sopenharmony_ci
351e41f4b71Sopenharmony_ci**返回值:**
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci| 类型                | 说明                              |
354e41f4b71Sopenharmony_ci| ------------------- | -------------------------------- |
355e41f4b71Sopenharmony_ci| Promise<void> | Promise回调返回停止播放成功或失败。 |
356e41f4b71Sopenharmony_ci
357e41f4b71Sopenharmony_ci**示例:**
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ci```ts
360e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_cisystemRingtonePlayer.stop().then(() => {
363e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate a successful stopping of ringtone.`);
364e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
365e41f4b71Sopenharmony_ci  console.error(`Failed to stop playing ringtone. ${err}`);
366e41f4b71Sopenharmony_ci});
367e41f4b71Sopenharmony_ci```
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci### release
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_cirelease(callback: AsyncCallback<void>): void
372e41f4b71Sopenharmony_ci
373e41f4b71Sopenharmony_ci释放铃声播放器,使用callback方式异步返回结果。
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
376e41f4b71Sopenharmony_ci
377e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci**参数:**
380e41f4b71Sopenharmony_ci
381e41f4b71Sopenharmony_ci| 参数名   | 类型                                      | 必填 | 说明                       |
382e41f4b71Sopenharmony_ci| -------- | -----------------------------------------| ---- | ------------------------- |
383e41f4b71Sopenharmony_ci| callback | AsyncCallback<void>                | 是   | 回调返回释放成功或失败。     |
384e41f4b71Sopenharmony_ci
385e41f4b71Sopenharmony_ci**示例:**
386e41f4b71Sopenharmony_ci
387e41f4b71Sopenharmony_ci```ts
388e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_cisystemRingtonePlayer.release((err: BusinessError) => {
391e41f4b71Sopenharmony_ci  if (err) {
392e41f4b71Sopenharmony_ci    console.error(`Failed to release ringtone player. ${err}`);
393e41f4b71Sopenharmony_ci    return;
394e41f4b71Sopenharmony_ci  }
395e41f4b71Sopenharmony_ci  console.info(`Callback invoked to indicate a successful releasing of ringtone player.`);
396e41f4b71Sopenharmony_ci});
397e41f4b71Sopenharmony_ci```
398e41f4b71Sopenharmony_ci
399e41f4b71Sopenharmony_ci### release
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_cirelease(): Promise<void>
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci释放铃声播放器,使用Promise方式异步返回结果。
404e41f4b71Sopenharmony_ci
405e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
406e41f4b71Sopenharmony_ci
407e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci**返回值:**
410e41f4b71Sopenharmony_ci
411e41f4b71Sopenharmony_ci| 类型                | 说明                            |
412e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- |
413e41f4b71Sopenharmony_ci| Promise<void> | Promise回调返回释放成功或失败。   |
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_ci**示例:**
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ci```ts
418e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_cisystemRingtonePlayer.release().then(() => {
421e41f4b71Sopenharmony_ci  console.info(`Promise returned to indicate a successful releasing of ringtone player.`);
422e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => {
423e41f4b71Sopenharmony_ci  console.error(`Failed to release ringtone player. ${err}`);
424e41f4b71Sopenharmony_ci});
425e41f4b71Sopenharmony_ci```
426e41f4b71Sopenharmony_ci
427e41f4b71Sopenharmony_ci### on('audioInterrupt')
428e41f4b71Sopenharmony_ci
429e41f4b71Sopenharmony_cion(type: 'audioInterrupt', callback: Callback<audio.InterruptEvent>): void
430e41f4b71Sopenharmony_ci
431e41f4b71Sopenharmony_ci监听音频中断事件(当音频焦点发生变化时触发),使用callback方式返回结果。
432e41f4b71Sopenharmony_ci
433e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
434e41f4b71Sopenharmony_ci
435e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci**参数:**
438e41f4b71Sopenharmony_ci
439e41f4b71Sopenharmony_ci| 参数名   | 类型                     | 必填 | 说明                                                                       |
440e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------------------------------------------- |
441e41f4b71Sopenharmony_ci| type     | string                  | 是   | 监听事件,固定为:'audioInterrupt'。 |
442e41f4b71Sopenharmony_ci| callback | Callback<[audio.InterruptEvent](../apis-audio-kit/js-apis-audio.md#interruptevent9)> | 是   | 回调函数,返回播放中断时,应用接收的中断事件信息。 |
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci**错误码:**
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[音频错误码](errorcode-audio.md)。
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
449e41f4b71Sopenharmony_ci| ------- | --------------------------------------------|
450e41f4b71Sopenharmony_ci| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
451e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. |
452e41f4b71Sopenharmony_ci
453e41f4b71Sopenharmony_ci**示例:**
454e41f4b71Sopenharmony_ci
455e41f4b71Sopenharmony_ci```ts
456e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit';
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_cilet isPlaying: boolean; // 标识符,表示是否正在渲染
459e41f4b71Sopenharmony_cilet isDucked: boolean; // 标识符,表示是否被降低音量
460e41f4b71Sopenharmony_ci
461e41f4b71Sopenharmony_cisystemRingtonePlayer.on('audioInterrupt', async(interruptEvent: audio.InterruptEvent) => {
462e41f4b71Sopenharmony_ci  if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
463e41f4b71Sopenharmony_ci    // 由系统进行操作,强制打断音频渲染,应用需更新自身状态及显示内容等
464e41f4b71Sopenharmony_ci    switch (interruptEvent.hintType) {
465e41f4b71Sopenharmony_ci      case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
466e41f4b71Sopenharmony_ci        // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent
467e41f4b71Sopenharmony_ci        console.info('Force paused. Update playing status and stop writing');
468e41f4b71Sopenharmony_ci        isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
469e41f4b71Sopenharmony_ci        break;
470e41f4b71Sopenharmony_ci      case audio.InterruptHint.INTERRUPT_HINT_STOP:
471e41f4b71Sopenharmony_ci        // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发
472e41f4b71Sopenharmony_ci        console.info('Force stopped. Update playing status and stop writing');
473e41f4b71Sopenharmony_ci        isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
474e41f4b71Sopenharmony_ci        break;
475e41f4b71Sopenharmony_ci      case audio.InterruptHint.INTERRUPT_HINT_DUCK:
476e41f4b71Sopenharmony_ci        // 音频流已被降低音量渲染
477e41f4b71Sopenharmony_ci        console.info('Force ducked. Update volume status');
478e41f4b71Sopenharmony_ci        isDucked = true; // 简化处理,代表应用更新音量状态的若干操作
479e41f4b71Sopenharmony_ci        break;
480e41f4b71Sopenharmony_ci      case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
481e41f4b71Sopenharmony_ci        // 音频流已被恢复正常音量渲染
482e41f4b71Sopenharmony_ci        console.info('Force ducked. Update volume status');
483e41f4b71Sopenharmony_ci        isDucked = false; // 简化处理,代表应用更新音量状态的若干操作
484e41f4b71Sopenharmony_ci        break;
485e41f4b71Sopenharmony_ci      default:
486e41f4b71Sopenharmony_ci        break;
487e41f4b71Sopenharmony_ci    }
488e41f4b71Sopenharmony_ci  } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
489e41f4b71Sopenharmony_ci    // 由应用进行操作,应用可以自主选择响应操作或忽略该事件
490e41f4b71Sopenharmony_ci    switch (interruptEvent.hintType) {
491e41f4b71Sopenharmony_ci      case audio.InterruptHint.INTERRUPT_HINT_RESUME:
492e41f4b71Sopenharmony_ci        // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染)
493e41f4b71Sopenharmony_ci        console.info('Resume force paused renderer or ignore');
494e41f4b71Sopenharmony_ci        // 若选择继续渲染,需在此处主动执行开始渲染的若干操作
495e41f4b71Sopenharmony_ci        break;
496e41f4b71Sopenharmony_ci      default:
497e41f4b71Sopenharmony_ci        break;
498e41f4b71Sopenharmony_ci    }
499e41f4b71Sopenharmony_ci  }
500e41f4b71Sopenharmony_ci});
501e41f4b71Sopenharmony_ci```
502e41f4b71Sopenharmony_ci
503e41f4b71Sopenharmony_ci### off('audioInterrupt') <sup>10+</sup>
504e41f4b71Sopenharmony_ci
505e41f4b71Sopenharmony_cioff(type: 'audioInterrupt'): void
506e41f4b71Sopenharmony_ci
507e41f4b71Sopenharmony_ci取消监听音频中断事件。
508e41f4b71Sopenharmony_ci
509e41f4b71Sopenharmony_ci**系统接口:** 该接口为系统接口
510e41f4b71Sopenharmony_ci
511e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.SystemSound.Core
512e41f4b71Sopenharmony_ci
513e41f4b71Sopenharmony_ci**参数:**
514e41f4b71Sopenharmony_ci
515e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明                                              |
516e41f4b71Sopenharmony_ci| :----- | :----- | :--- | :------------------------------------------------ |
517e41f4b71Sopenharmony_ci| type   | string | 是   | 监听事件,固定为:'audioInterrupt'。 |
518e41f4b71Sopenharmony_ci
519e41f4b71Sopenharmony_ci**错误码:**
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[音频错误码](errorcode-audio.md)。
522e41f4b71Sopenharmony_ci
523e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
524e41f4b71Sopenharmony_ci| ------- | --------------------------------------------|
525e41f4b71Sopenharmony_ci| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
526e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. |
527e41f4b71Sopenharmony_ci
528e41f4b71Sopenharmony_ci**示例:**
529e41f4b71Sopenharmony_ci
530e41f4b71Sopenharmony_ci```ts
531e41f4b71Sopenharmony_cisystemRingtonePlayer.off('audioInterrupt');
532e41f4b71Sopenharmony_ci```
533