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