# Interfaces (Others) > **NOTE** > > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## AudioStreamInfo8+ Describes audio stream information. **System capability**: SystemCapability.Multimedia.Audio.Core | Name | Type | Read-Only| Optional| Description | | ------------ | ------------------------------------------------- | ---- |---| ------------------ | | samplingRate | [AudioSamplingRate](arkts-apis-audio-e.md#audiosamplingrate8) | No| No| Audio sampling rate.| | channels | [AudioChannel](arkts-apis-audio-e.md#audiochannel8) | No| No| Number of audio channels.| | sampleFormat | [AudioSampleFormat](arkts-apis-audio-e.md#audiosampleformat8) | No| No| Audio sample format. | | encodingType | [AudioEncodingType](arkts-apis-audio-e.md#audioencodingtype8) | No| No| Audio encoding type. | | channelLayout11+ | [AudioChannelLayout](arkts-apis-audio-e.md#audiochannellayout11) | No| Yes| Audio channel layout. The default value is **0x0**.| ## AudioRendererInfo8+ Describes audio renderer information. | Name | Type | Read-Only| Optional| Description | | ------------- | --------------------------- | ---- |---| --------------- | | content | [ContentType](arkts-apis-audio-e.md#contenttypedeprecated) | No| Yes| Audio content type.
**System capability**: SystemCapability.Multimedia.Audio.Core
This parameter is mandatory in API versions 8 and 9 and optional since API version 10. The default value is **CONTENT_TYPE_UNKNOWN**.
This API is supported since API version 7 and deprecated since API version 10. You are advised to use [StreamUsage](arkts-apis-audio-e.md#streamusage) instead.| | usage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | No| No| Audio stream usage.
**System capability**: SystemCapability.Multimedia.Audio.Core
**Atomic service API**: This API can be used in atomic services since API version 12.| | rendererFlags | number | No| No| Audio renderer flags.
The value **0** means an audio renderer.
**System capability**: SystemCapability.Multimedia.Audio.Core
**Atomic service API**: This API can be used in atomic services since API version 12.| | volumeMode19+ | [AudioVolumeMode](arkts-apis-audio-e.md#audiovolumemode19) | No| Yes| Audio volume mode. The default value is **SYSTEM_GLOBAL**.
**System capability**: SystemCapability.Multimedia.Audio.Volume| ## AudioRendererOptions8+ Describes audio renderer configurations. | Name | Type | Read-Only| Optional| Description | | ------------ | ---------------------------------------- | ---- |---| ---------------- | | streamInfo | [AudioStreamInfo](#audiostreaminfo8) | No| No| Audio stream information.
**System capability**: SystemCapability.Multimedia.Audio.Renderer| | rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | No| No| Audio renderer information.
**System capability**: SystemCapability.Multimedia.Audio.Renderer| | privacyType10+ | [AudioPrivacyType](arkts-apis-audio-e.md#audioprivacytype10) | No| Yes| Whether the audio stream can be recorded by other applications. The default value is **0**.
**System capability**: SystemCapability.Multimedia.Audio.PlaybackCapture| ## InterruptEvent9+ Describes the interruption event received by the application when the audio is interrupted. **Atomic service API**: This API can be used in atomic services since API version 12. **System capability**: SystemCapability.Multimedia.Audio.Renderer | Name | Type | Read-Only| Optional| Description | | --------- | ------------------------------------------ | ---- |---| ------------------------------------ | | eventType | [InterruptType](arkts-apis-audio-e.md#interrupttype) | No| No| Whether the audio interruption has started or ended. | | forceType | [InterruptForceType](arkts-apis-audio-e.md#interruptforcetype9) | No| No| Whether the audio interruption is forcibly taken by the system or taken by an application.| | hintType | [InterruptHint](arkts-apis-audio-e.md#interrupthint) | No| No| Hint provided along the interruption to provide information related to the interruption event.| ## DeviceBlockStatusInfo13+ Describes the audio device blocked status and device information. **System capability**: SystemCapability.Multimedia.Audio.Device | Name | Type | Read-Only| Optional| Description | | :---------------- | :------------------------------------------------ | :--- |---| :----------------- | | blockStatus | [DeviceBlockStatus](arkts-apis-audio-e.md#deviceblockstatus13) | No| No| Blocked status of the audio device.| | devices | [AudioDeviceDescriptors](arkts-apis-audio-t.md#audiodevicedescriptors) | No| No| Device information. | ## AudioSessionStrategy12+ Describes an audio session strategy. **System capability**: SystemCapability.Multimedia.Audio.Core | Name | Type | Read-Only| Optional| Description | | :------------ |:------------------------------------------------| :--- |---| :--------------- | | concurrencyMode | [AudioConcurrencyMode](arkts-apis-audio-e.md#audioconcurrencymode12) | No| No| Audio concurrency mode. | ## AudioSessionDeactivatedEvent12+ Describes the event indicating that an audio session is deactivated. **System capability**: SystemCapability.Multimedia.Audio.Core | Name | Type | Read-Only| Optional| Description | | :------------ |:------------------------------------------------------------------| :--- |---| :--------------- | | reason | [AudioSessionDeactivatedReason](arkts-apis-audio-e.md#audiosessiondeactivatedreason12) | No| No| Reason for deactivating an audio session. | ## AudioRendererChangeInfo9+ Describes the audio renderer change event. **System capability**: SystemCapability.Multimedia.Audio.Renderer | Name | Type | Read-Only| Optional| Description | | -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | | streamId | number | Yes | No | Unique ID of an audio stream. | | rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | Yes | No | Audio renderer information. | | deviceDescriptors | [AudioDeviceDescriptors](arkts-apis-audio-t.md#audiodevicedescriptors) | Yes | No | Audio device description.| **Example** ```ts import { audio } from '@kit.AudioKit'; const audioManager = audio.getAudioManager(); let audioStreamManager = audioManager.getStreamManager(); audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => { for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { console.info(`## RendererChange on is called for ${i} ##`); console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`); console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`); console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`); console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`); let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors; for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) { console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`); console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`); console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`); console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`); console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); } } }); ``` ## AudioCapturerChangeInfo9+ Describes the audio capturer change event. **System capability**: SystemCapability.Multimedia.Audio.Capturer | Name | Type | Read-Only| Optional| Description | | -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | | streamId | number | Yes | No | Unique ID of an audio stream. | | capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | Yes | No | Audio capturer information. | | deviceDescriptors | [AudioDeviceDescriptors](arkts-apis-audio-t.md#audiodevicedescriptors) | Yes | No | Audio device information.| | muted11+ | boolean | Yes | Yes| Whether the audio capturer is muted. The value **true** means that the audio capturer is muted, and **false** means the opposite.| **Example** ```ts import { audio } from '@kit.AudioKit'; const audioManager = audio.getAudioManager(); let audioStreamManager = audioManager.getStreamManager(); audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => { for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { console.info(`## CapChange on is called for element ${i} ##`); console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors; for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); } } }); ``` ## AudioDeviceDescriptor Describes an audio device. | Name | Type | Read-Only| Optional| Description | | ----------------------------- | -------------------------- | ---- | ---- | ---------- | | deviceRole | [DeviceRole](arkts-apis-audio-e.md#devicerole) | Yes | No | Device role.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | deviceType | [DeviceType](arkts-apis-audio-e.md#devicetype) | Yes | No | Device type.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | id9+ | number | Yes | No | Unique device ID.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | name9+ | string | Yes | No | Device name.
For a Bluetooth device, you must request the ohos.permission.USE_BLUETOOTH permission.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | address9+ | string | Yes | No | Device address.
For a Bluetooth device, you must request the ohos.permission.USE_BLUETOOTH permission.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | sampleRates9+ | Array<number> | Yes | No | Supported sampling rates.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | channelCounts9+ | Array<number> | Yes | No | Number of channels supported.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | channelMasks9+ | Array<number> | Yes | No | Supported channel masks.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | displayName10+ | string | Yes | No | Display name of the device.
**System capability**: SystemCapability.Multimedia.Audio.Device
**Atomic service API**: This API can be used in atomic services since API version 12.| | encodingTypes11+ | Array<[AudioEncodingType](arkts-apis-audio-e.md#audioencodingtype8)> | Yes | Yes| Supported encoding types.
**System capability**: SystemCapability.Multimedia.Audio.Core
**Atomic service API**: This API can be used in atomic services since API version 12.| | spatializationSupported18+ | boolean | Yes | Yes| Whether the device supports spatial audio rendering. The value **true** means that the device supports spatial audio rendering, and **false** means the opposite.
**System capability**: SystemCapability.Multimedia.Audio.Spatialization| **Example** ```ts import { audio } from '@kit.AudioKit'; function displayDeviceProp(value: audio.AudioDeviceDescriptor) { deviceRoleValue = value.deviceRole; deviceTypeValue = value.deviceType; } let deviceRoleValue: audio.DeviceRole | undefined = undefined; let deviceTypeValue: audio.DeviceType | undefined = undefined; audio.getAudioManager().getRoutingManager().getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((value: audio.AudioDeviceDescriptors) => { console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG'); value.forEach(displayDeviceProp); if (deviceTypeValue != undefined && deviceRoleValue != undefined){ console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); } else { console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); } }); ``` ## VolumeEvent9+ Describes the event received by the application when the volume is changed. **System capability**: SystemCapability.Multimedia.Audio.Volume | Name | Type | Read-Only| Optional| Description | | ---------- | ----------------------------------- | ---- |---|-------------------------------------------| | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | No| No| Audio stream type. | | volume | number | No| No|Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**. | | updateUi | boolean | No| No| Whether to show the volume change in UI. The value **true** means to show the volume change in UI, and **false** means the opposite. | | volumeMode19+ | [AudioVolumeMode](arkts-apis-audio-e.md#audiovolumemode19) | No| Yes| Audio volume mode. The default value is **SYSTEM_GLOBAL**.| ## MicStateChangeEvent9+ Describes the event received by the application when the microphone mute status is changed. **System capability**: SystemCapability.Multimedia.Audio.Device | Name | Type | Read-Only| Optional| Description | | ---------- | ----------------------------------- | ---- |---|-------------------------------------------------------- | | mute | boolean | No| No| Mute status of the microphone The value **true** means that the microphone is muted, and **false** means the opposite. | ## StreamVolumeEvent20+ Describes the event received by the application when the audio stream volume is changed. **System capability**: SystemCapability.Multimedia.Audio.Volume | Name | Type | Read-Only| Optional| Description | | ---------- | ----------------------------------- | ---- |---|-------------------------------------------------------- | | streamUsage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | No| No| Audio stream for which the volume changes. | | volume | number | No| No| Volume. | | updateUi | boolean | No| No| Whether to show the volume change in UI. The value **true** means to show the volume change in UI, and **false** means the opposite. | ## DeviceChangeAction Describes the device connection status and device information. **System capability**: SystemCapability.Multimedia.Audio.Device | Name | Type | Read-Only| Optional| Description | | :---------------- | :------------------------------------------------ | :--- |---| :----------------- | | type | [DeviceChangeType](arkts-apis-audio-e.md#devicechangetype) | No| No| Device connection status.| | deviceDescriptors | [AudioDeviceDescriptors](arkts-apis-audio-t.md#audiodevicedescriptors) | No| No| Device information. | ## AudioStreamDeviceChangeInfo11+ Describes the event received by the application when the audio stream device is changed. **Atomic service API**: This API can be used in atomic services since API version 12. **System capability**: SystemCapability.Multimedia.Audio.Device | Name | Type | Read-Only| Optional| Description | | :---------------- |:------------------------------------------------------------------| :--- |---| :----------------- | | devices | [AudioDeviceDescriptors](arkts-apis-audio-t.md#audiodevicedescriptors) | No| No| Device information.| | changeReason | [AudioStreamDeviceChangeReason](arkts-apis-audio-e.md#audiostreamdevicechangereason11) | No| No| Reason for the change.| ## AudioTimestampInfo19+ Describes the information about the audio stream timestamp and the current data frame position. **System capability**: SystemCapability.Multimedia.Audio.Core | Name| Type| Read-Only| Optional| Description | | ---------| ------ | ---- | ---- |-----------------------------------| | framePos | number | Yes | No | Position of the current data frame for playback or recording. | | timestamp | number | Yes | No | Timestamp corresponding to the current data frame position during playback or recording.| ## AudioCapturerInfo8+ Describes audio capturer information. **System capability**: SystemCapability.Multimedia.Audio.Core | Name | Type | Read-Only| Optional| Description | | :------------ | :------------------------ | :--- |---| :--------------- | | source | [SourceType](arkts-apis-audio-e.md#sourcetype8) | No| No| Audio source type. | | capturerFlags | number | No| No| Audio capturer flags.
The value **0** means an audio capturer.| ## AudioCapturerOptions8+ Describes audio capturer configurations. | Name | Type | Read-Only| Optional| Description | | ----------------------------------- | --------------------------------------------------------- | ---- |---| ------------------------------------------------------------ | | streamInfo | [AudioStreamInfo](#audiostreaminfo8) | No| No| Audio stream information.
**System capability**: SystemCapability.Multimedia.Audio.Capturer | | capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | No| No| Audio capturer information.
**System capability**: SystemCapability.Multimedia.Audio.Capturer | | playbackCaptureConfig(deprecated) | [AudioPlaybackCaptureConfig](#audioplaybackcaptureconfigdeprecated) | No| Yes| Configuration of internal audio recording.
**System capability**: SystemCapability.Multimedia.Audio.PlaybackCapture
This API is supported since API version 10 and deprecated since API version 12. You are advised to use [AVScreenCapture](../apis-media-kit/capi-avscreencapture.md) instead. | ## AudioInterrupt(deprecated) Describes input parameters of audio interruption events. > **NOTE** > > This API is supported since API version 7 and deprecated since API version 9. No substitute is provided. **System capability**: SystemCapability.Multimedia.Audio.Renderer | Name | Type | Read-Only| Optional| Description | | --------------- | --------------------------- | ----|---| ------------------------------------------------------------ | | streamUsage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | No| No| Audio stream usage. | | contentType | [ContentType](arkts-apis-audio-e.md#contenttypedeprecated) | No| No| Audio content type. | | pauseWhenDucked | boolean | No| No| Whether audio playback can be paused during an audio interruption. The value **true** means that audio playback can be paused during an audio interruption, and **false** means the opposite.| ## CaptureFilterOptions(deprecated) Defines the options for filtering the played audio streams to be recorded. > **NOTE** > This API is supported since API version 10 and deprecated since API version 12. You are advised to use [AVScreenCapture](../apis-media-kit/capi-avscreencapture.md) instead. **System capability**: SystemCapability.Multimedia.Audio.PlaybackCapture | Name | Type | Read-Only| Optional| Description | | ------ | ---------------------------------- | ---- |---| ------------------------------------------------------------ | | usages | Array\<[StreamUsage](arkts-apis-audio-e.md#streamusage)> | No| No| **StreamUsage** of the audio stream to be recorded. You can specify zero or more stream usages. If the array is empty, the audio stream for which **StreamUsage** is **STREAM_USAGE_MUSIC**, **STREAM_USAGE_MOVIE**, **STREAM_USAGE_GAME**, or **STREAM_USAGE_AUDIOBOOK** is recorded by default.
In API version 10, **CaptureFilterOptions** supports **StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION**, and therefore the ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO permission is required. Only system applications can request this permission.
Since API version 11, **CaptureFilterOptions** does not support **StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION**. Therefore, no permission is required for calling this API.| ## AudioPlaybackCaptureConfig(deprecated) Defines the configuration of internal audio recording. > **NOTE** > This API is supported since API version 10 and deprecated since API version 12. You are advised to use [AVScreenCapture](../apis-media-kit/capi-avscreencapture.md) instead. **System capability**: SystemCapability.Multimedia.Audio.PlaybackCapture | Name | Type | Read-Only| Optional| Description | | ------------- | --------------------------------------------- | ---- |---| -------------------------------- | | filterOptions | [CaptureFilterOptions](#capturefilteroptionsdeprecated) | No| No| Options for filtering the played audio streams to be recorded.| ## InterruptAction(deprecated) Describes the callback invoked for audio interruption or focus gain events. > **NOTE** > > This API is supported since API version 7 and deprecated since API version 9. You are advised to use [InterruptEvent](#interruptevent9) instead. **System capability**: SystemCapability.Multimedia.Audio.Renderer | Name | Type | Read-Only| Optional| Description | | ---------- | ------------------------------------------- | ---- |---| ------------------------------------------------------------ | | actionType | [InterruptActionType](arkts-apis-audio-e.md#interruptactiontypedeprecated) | No| No| Returned event type. The value **TYPE_ACTIVATED** means the focus gain event, and **TYPE_INTERRUPT** means the audio interruption event.| | type | [InterruptType](arkts-apis-audio-e.md#interrupttype) | No| Yes| Type of the audio interruption event. | | hint | [InterruptHint](arkts-apis-audio-e.md#interrupthint) | No| Yes| Hint provided along with the audio interruption event. | | activated | boolean | No| Yes| Whether the focus is gained or released. The value **true** means that the focus is gained or released, and **false** means that the focus fails to be gained or released.|