@ohos.multimedia.audio (Audio Management)

The Audio module provides basic audio management capabilities, including audio volume and audio device management, and audio data collection and rendering.

This module provides the following common audio-related functions:

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.

Modules to Import

import audio from '@ohos.multimedia.audio';

Constants

Name Type Readable Writable Description
DEFAULT_VOLUME_GROUP_ID9+ number Yes No Default volume group ID.
System capability: SystemCapability.Multimedia.Audio.Volume
DEFAULT_INTERRUPT_GROUP_ID9+ number Yes No Default audio interruption group ID.
System capability: SystemCapability.Multimedia.Audio.Interrupt

Example

import audio from '@ohos.multimedia.audio';

const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;

audio.getAudioManager

getAudioManager(): AudioManager

Obtains an AudioManager instance.

System capability: SystemCapability.Multimedia.Audio.Core

Return value

Type Description
AudioManager AudioManager instance.

Example

import audio from '@ohos.multimedia.audio';

let audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback<AudioRenderer>): void

Creates an AudioRenderer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
options AudioRendererOptions Yes Renderer configurations.
callback AsyncCallback<AudioRenderer> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the AudioRenderer instance obtained; otherwise, err is an error object.

Example

import audio from '@ohos.multimedia.audio';

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioRendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  rendererFlags: 0
}

let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
}

audio.createAudioRenderer(audioRendererOptions,(err, data) => {
  if (err) {
    console.error(`AudioRenderer Created: Error: ${err}`);
  } else {
    console.info('AudioRenderer Created: Success: SUCCESS');
    let audioRenderer = data;
  }
});

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>

Creates an AudioRenderer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
options AudioRendererOptions Yes Renderer configurations.

Return value

Type Description
Promise<AudioRenderer> Promise used to return the AudioRenderer instance.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioRendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  rendererFlags: 0
}

let audioRendererOptions: audio.AudioRendererOptions = {
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
}

let audioRenderer: audio.AudioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) => {
  audioRenderer = data;
  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
});

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer>): void

Creates an AudioCapturer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Required permissions: ohos.permission.MICROPHONE

This permission is required only when SourceType is set to SOURCE_TYPE_MIC.

Parameters

Name Type Mandatory Description
options AudioCapturerOptions Yes Capturer configurations.
callback AsyncCallback<AudioCapturer> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the AudioCapturer instance obtained; otherwise, err is an error object.

Example

import audio from '@ohos.multimedia.audio';

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioCapturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

let audioCapturerOptions: audio.AudioCapturerOptions = {
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
}

audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
  if (err) {
    console.error(`AudioCapturer Created : Error: ${err}`);
  } else {
    console.info('AudioCapturer Created : Success : SUCCESS');
    let audioCapturer = data;
  }
});

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>

Creates an AudioCapturer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Required permissions: ohos.permission.MICROPHONE

This permission is required only when SourceType is set to SOURCE_TYPE_MIC.

Parameters

Name Type Mandatory Description
options AudioCapturerOptions Yes Capturer configurations.

Return value

Type Description
Promise<AudioCapturer> Promise used to return the AudioCapturer instance.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

let audioCapturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

let audioCapturerOptions:audio.AudioCapturerOptions = {
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
}

let audioCapturer: audio.AudioCapturer;
audio.createAudioCapturer(audioCapturerOptions).then((data) => {
  audioCapturer = data;
  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`AudioCapturer Created : ERROR : ${err}`);
});

AudioVolumeType

Enumerates the audio stream types.

System capability: SystemCapability.Multimedia.Audio.Volume

Name Value Description
VOICE_CALL8+ 0 Audio stream for voice calls.
RINGTONE 2 Audio stream for ringtones.
MEDIA 3 Audio stream for media purpose.
ALARM10+ 4 Audio stream for alarming.
ACCESSIBILITY10+ 5 Audio stream for accessibility.
VOICE_ASSISTANT8+ 9 Audio stream for voice assistant.

InterruptMode9+

Enumerates the audio interruption modes.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Name Value Description
SHARE_MODE 0 Shared mode.
INDEPENDENT_MODE 1 Independent mode.

DeviceFlag

Enumerates the audio device flags.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
OUTPUT_DEVICES_FLAG 1 Output device.
INPUT_DEVICES_FLAG 2 Input device.
ALL_DEVICES_FLAG 3 All devices.

DeviceRole

Enumerates the audio device roles.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
INPUT_DEVICE 1 Input role.
OUTPUT_DEVICE 2 Output role.

DeviceType

Enumerates the audio device types.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
INVALID 0 Invalid device.
EARPIECE 1 Earpiece.
SPEAKER 2 Speaker.
WIRED_HEADSET 3 Wired headset with a microphone.
WIRED_HEADPHONES 4 Wired headset without microphone.
BLUETOOTH_SCO 7 Bluetooth device using Synchronous Connection Oriented (SCO) links.
BLUETOOTH_A2DP 8 Bluetooth device using Advanced Audio Distribution Profile (A2DP) links.
MIC 15 Microphone.
USB_HEADSET 22 USB Type-C headset.
DEFAULT9+ 1000 Default device type.

CommunicationDeviceType9+

Enumerates the device types used for communication.

System capability: SystemCapability.Multimedia.Audio.Communication

Name Value Description
SPEAKER 2 Speaker.

AudioRingMode

Enumerates the ringer modes.

System capability: SystemCapability.Multimedia.Audio.Communication

Name Value Description
RINGER_MODE_SILENT 0 Silent mode.
RINGER_MODE_VIBRATE 1 Vibration mode.
RINGER_MODE_NORMAL 2 Normal mode.

AudioSampleFormat8+

Enumerates the audio sample formats.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
SAMPLE_FORMAT_INVALID -1 Invalid format.
SAMPLE_FORMAT_U8 0 Unsigned 8-bit integer.
SAMPLE_FORMAT_S16LE 1 Signed 16-bit integer, little endian.
SAMPLE_FORMAT_S24LE 2 Signed 24-bit integer, little endian.
Due to system restrictions, only some devices support this sampling format.
SAMPLE_FORMAT_S32LE 3 Signed 32-bit integer, little endian.
Due to system restrictions, only some devices support this sampling format.
SAMPLE_FORMAT_F32LE9+ 4 Signed 32-bit floating point number, little endian.
Due to system restrictions, only some devices support this sampling format.

AudioErrors9+

Enumerates the audio error codes.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
ERROR_INVALID_PARAM 6800101 Invalid parameter.
ERROR_NO_MEMORY 6800102 Memory allocation failure.
ERROR_ILLEGAL_STATE 6800103 Unsupported state.
ERROR_UNSUPPORTED 6800104 Unsupported parameter value.
ERROR_TIMEOUT 6800105 Processing timeout.
ERROR_STREAM_LIMIT 6800201 Too many audio streams.
ERROR_SYSTEM 6800301 System error.

AudioChannel8+

Enumerates the audio channels.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
CHANNEL_1 0x1 << 0 One audio channel (mono).
CHANNEL_2 0x1 << 1 Two audio channels (stereo).
CHANNEL_311+ 3 Three audio channels.
CHANNEL_411+ 4 Four audio channels.
CHANNEL_511+ 5 Five audio channels.
CHANNEL_611+ 6 Six audio channels.
CHANNEL_711+ 7 Seven audio channels.
CHANNEL_811+ 8 Eight audio channels.
CHANNEL_911+ 9 Nine audio channels.
CHANNEL_1011+ 10 Ten audio channels.
CHANNEL_1211+ 12 Twelve audio channels.
CHANNEL_1411+ 14 Fourteen audio channels.
CHANNEL_1611+ 16 Sixteen audio channels.

AudioSamplingRate8+

Enumerates the audio sampling rates. The sampling rates supported vary according to the device in use.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
SAMPLE_RATE_8000 8000 The sampling rate is 8000.
SAMPLE_RATE_11025 11025 The sampling rate is 11025.
SAMPLE_RATE_12000 12000 The sampling rate is 12000.
SAMPLE_RATE_16000 16000 The sampling rate is 16000.
SAMPLE_RATE_22050 22050 The sampling rate is 22050.
SAMPLE_RATE_24000 24000 The sampling rate is 24000.
SAMPLE_RATE_32000 32000 The sampling rate is 32000.
SAMPLE_RATE_44100 44100 The sampling rate is 44100.
SAMPLE_RATE_48000 48000 The sampling rate is 48000.
SAMPLE_RATE_64000 64000 The sampling rate is 64000.
SAMPLE_RATE_96000 96000 The sampling rate is 96000.

AudioEncodingType8+

Enumerates the audio encoding types.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
ENCODING_TYPE_INVALID -1 Invalid.
ENCODING_TYPE_RAW 0 PCM encoding.

AudioChannelLayout11+

Enumerates the audio channel layouts.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
CH_LAYOUT_UNKNOWN 0x0 Unknown.
CH_LAYOUT_MONO 0x4 Mono.
CH_LAYOUT_STEREO 0x3 Stereo.
CH_LAYOUT_STEREO_DOWNMIX 0x60000000 Stereo downmix.
CH_LAYOUT_2POINT1 0xB 2.1.
CH_LAYOUT_3POINT0 0x103 3.0.
CH_LAYOUT_SURROUND 0x7 Surround.
CH_LAYOUT_3POINT1 0xF 3.1.
CH_LAYOUT_4POINT0 0x107 4.0.
CH_LAYOUT_QUAD 0x33 Quad.
CH_LAYOUT_QUAD_SIDE 0x603 Quad side.
CH_LAYOUT_2POINT0POINT2 0x3000000003 2.0.2.
CH_LAYOUT_AMB_ORDER1_ACN_N3D 0x100000000001 First-order FOA file in ACN_N3D (ITU standards).
CH_LAYOUT_AMB_ORDER1_ACN_SN3D 0x100000001001 First-order FOA file in ACN_SN3D (ITU standards).
CH_LAYOUT_AMB_ORDER1_FUMA 0x100000000101 First-order FOA file in FUMA (ITU standards).
CH_LAYOUT_4POINT1 0x10F 4.1.
CH_LAYOUT_5POINT0 0x607 5.0.
CH_LAYOUT_5POINT0_BACK 0x37 5.0 back.
CH_LAYOUT_2POINT1POINT2 0x300000000B 2.1.2.
CH_LAYOUT_3POINT0POINT2 0x3000000007 3.0.2.
CH_LAYOUT_5POINT1 0x60F 5.1.
CH_LAYOUT_5POINT1_BACK 0x3F 5.1 back.
CH_LAYOUT_6POINT0 0x707 6.0.
CH_LAYOUT_HEXAGONAL 0x137 Hexagonal.
CH_LAYOUT_3POINT1POINT2 0x500F 3.1.2.
CH_LAYOUT_6POINT0_FRONT 0x6C3 6.0 front.
CH_LAYOUT_6POINT1 0x70F 6.1.
CH_LAYOUT_6POINT1_BACK 0x13F 6.1 back.
CH_LAYOUT_6POINT1_FRONT 0x6CB 6.1 front.
CH_LAYOUT_7POINT0 0x637 7.0.
CH_LAYOUT_7POINT0_FRONT 0x6C7 7.0 front.
CH_LAYOUT_7POINT1 0x63F 7.1.
CH_LAYOUT_OCTAGONAL 0x737 Octagonal.
CH_LAYOUT_5POINT1POINT2 0x300000060F 5.1.2.
CH_LAYOUT_7POINT1_WIDE 0x6CF 7.1 wide.
CH_LAYOUT_7POINT1_WIDE_BACK 0xFF 7.1 wide back.
CH_LAYOUT_AMB_ORDER2_ACN_N3D 0x100000000002 Second-order HOA file in ACN_N3D (ITU standards).
CH_LAYOUT_AMB_ORDER2_ACN_SN3D 0x100000001002 Second-order HOA file in ACN_SN3D (ITU standards).
CH_LAYOUT_AMB_ORDER2_FUMA 0x100000000102 Second-order HOA file in FUMA (ITU standards).
CH_LAYOUT_5POINT1POINT4 0x2D60F 5.1.4.
CH_LAYOUT_7POINT1POINT2 0x300000063F 7.1.2.
CH_LAYOUT_7POINT1POINT4 0x2D63F 7.1.4.
CH_LAYOUT_10POINT2 0x180005737 10.2.
CH_LAYOUT_9POINT1POINT4 0x18002D63F 9.1.4.
CH_LAYOUT_9POINT1POINT6 0x318002D63F 9.1.6.
CH_LAYOUT_HEXADECAGONAL 0x18003F737 Hexadecagonal.
CH_LAYOUT_AMB_ORDER3_ACN_N3D 0x100000000003 Third-order HOA file in ACN_N3D (ITU standards).
CH_LAYOUT_AMB_ORDER3_ACN_SN3D 0x100000001003 Third-order HOA file in ACN_SN3D (ITU standards).
CH_LAYOUT_AMB_ORDER3_FUMA 0x100000000103 Third-order HOA file in FUMA (ITU standards).

ContentType(deprecated)

Enumerates the audio content types.

NOTE This API is supported since API version 7 and deprecated since API version 10. You are advised to use StreamUsage instead.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
CONTENT_TYPE_UNKNOWN 0 Unknown content.
CONTENT_TYPE_SPEECH 1 Speech.
CONTENT_TYPE_MUSIC 2 Music.
CONTENT_TYPE_MOVIE 3 Movie.
CONTENT_TYPE_SONIFICATION 4 Notification tone.
CONTENT_TYPE_RINGTONE8+ 5 Ringtone.

StreamUsage

Enumerates the audio stream usage.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
STREAM_USAGE_UNKNOWN 0 Unknown usage.
STREAM_USAGE_MEDIA(deprecated) 1 Media.
This enumerated value is supported since API version 7 and deprecated since API version 10. You are advised to use STREAM_USAGE_MUSIC, STREAM_USAGE_MOVIE, STREAM_USAGE_GAME, or STREAM_USAGE_AUDIOBOOK instead.
STREAM_USAGE_MUSIC10+ 1 Music.
STREAM_USAGE_VOICE_COMMUNICATION 2 Voice communication.
STREAM_USAGE_VOICE_ASSISTANT9+ 3 Voice assistant.
STREAM_USAGE_ALARM10+ 4 Alarming.
STREAM_USAGE_VOICE_MESSAGE10+ 5 Voice message.
STREAM_USAGE_NOTIFICATION_RINGTONE(deprecated) 6 Notification tone.
This enumerated value is deprecated since API version 10. You are advised to use STREAM_USAGE_RINGTONE instead.
STREAM_USAGE_RINGTONE10+ 6 Ringtone.
STREAM_USAGE_NOTIFICATION10+ 7 Notification.
STREAM_USAGE_ACCESSIBILITY10+ 8 Accessibility.
STREAM_USAGE_MOVIE10+ 10 Movie or video.
STREAM_USAGE_GAME10+ 11 Gaming.
STREAM_USAGE_AUDIOBOOK10+ 12 Audiobook.
STREAM_USAGE_NAVIGATION10+ 13 Navigation.

AudioState8+

Enumerates the audio states.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
STATE_INVALID -1 Invalid state.
STATE_NEW 0 Creating instance state.
STATE_PREPARED 1 Prepared.
STATE_RUNNING 2 Running.
STATE_STOPPED 3 Stopped.
STATE_RELEASED 4 Released.
STATE_PAUSED 5 Paused.

AudioEffectMode10+

Enumerates the audio effect modes.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
EFFECT_NONE 0 The audio effect is disabled.
EFFECT_DEFAULT 1 The default audio effect is used.

AudioRendererRate8+

Enumerates the audio renderer rates.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
RENDER_RATE_NORMAL 0 Normal rate.
RENDER_RATE_DOUBLE 1 Double rate.
RENDER_RATE_HALF 2 Half rate.

InterruptType

Enumerates the audio interruption types.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
INTERRUPT_TYPE_BEGIN 1 Audio interruption started.
INTERRUPT_TYPE_END 2 Audio interruption ended.

InterruptForceType9+

Enumerates the types of force that causes audio interruption.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
INTERRUPT_FORCE 0 Forced action taken by the system.
INTERRUPT_SHARE 1 The application can choose to take action or ignore.

InterruptHint

Enumerates the hints provided along with audio interruption.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
INTERRUPT_HINT_NONE8+ 0 None.
INTERRUPT_HINT_RESUME 1 Resume the playback.
INTERRUPT_HINT_PAUSE 2 Paused/Pause the playback.
INTERRUPT_HINT_STOP 3 Stopped/Stop the playback.
INTERRUPT_HINT_DUCK 4 Ducked the playback. (In ducking, the audio volume is reduced, but not silenced.)
INTERRUPT_HINT_UNDUCK8+ 5 Unducked the playback.

AudioStreamInfo8+

Describes audio stream information.

System capability: SystemCapability.Multimedia.Audio.Core

Name Type Mandatory Description
samplingRate AudioSamplingRate Yes Audio sampling rate.
channels AudioChannel Yes Number of audio channels.
sampleFormat AudioSampleFormat Yes Audio sample format.
encodingType AudioEncodingType Yes Audio encoding type.
channelLayout11+ AudioChannelLayout No Audio channel layout.

AudioRendererInfo8+

Describes audio renderer information.

System capability: SystemCapability.Multimedia.Audio.Core

Name Type Mandatory Description
content ContentType No Audio content type.
This parameter is mandatory in API versions 8 and 9 and optional since API version 10.
usage StreamUsage Yes Audio stream usage.
rendererFlags number Yes Audio renderer flags.
The value 0 means a common audio renderer, and 1 means a low-latency audio renderer. Currently, the ArkTS APIs do not support the low-latency audio renderer.

AudioRendererOptions8+

Describes audio renderer configurations.

Name Type Mandatory Description
streamInfo AudioStreamInfo Yes Audio stream information.
System capability: SystemCapability.Multimedia.Audio.Renderer
rendererInfo AudioRendererInfo Yes Audio renderer information.
System capability: SystemCapability.Multimedia.Audio.Renderer
privacyType10+ AudioPrivacyType No Whether the audio stream can be recorded by other applications. The default value is 0.
System capability: SystemCapability.Multimedia.Audio.PlaybackCapture

AudioPrivacyType10+

Enumerates whether an audio stream can be recorded by other applications.

System capability: SystemCapability.Multimedia.Audio.PlaybackCapture

Name Value Description
PRIVACY_TYPE_PUBLIC 0 The audio stream can be recorded by other applications.
PRIVACY_TYPE_PRIVATE 1 The audio stream cannot be recorded by other applications.

InterruptEvent9+

Describes the interruption event received by the application when playback is interrupted.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Type Mandatory Description
eventType InterruptType Yes Whether the interruption has started or ended.
forceType InterruptForceType Yes Whether the interruption is taken by the system or to be taken by the application.
hintType InterruptHint Yes Hint provided along the interruption.

VolumeEvent9+

Describes the event received by the application when the volume is changed.

System capability: SystemCapability.Multimedia.Audio.Volume

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volume number Yes Volume to set. The value range can be obtained by calling getMinVolume and getMaxVolume.
updateUi boolean Yes Whether the volume change is shown on the UI. The value true means that the volume change is shown, and false means the opposite.

MicStateChangeEvent9+

Describes the event received by the application when the microphone mute status changes.

System capability: SystemCapability.Multimedia.Audio.Device

Name Type Mandatory Description
mute boolean Yes Mute status of the microphone. The value true means that the microphone is muted, and false means the opposite.

DeviceChangeAction

Describes the device connection status and device information.

System capability: SystemCapability.Multimedia.Audio.Device

Name Type Mandatory Description
type DeviceChangeType Yes Device connection status.
deviceDescriptors AudioDeviceDescriptors Yes Device information.

ChannelBlendMode11+

Enumerates the audio channel blending modes.

System capability: SystemCapability.Multimedia.Audio.Core

Name Value Description
MODE_DEFAULT 0 The audio channels are not blended.
MODE_BLEND_LR 1 The left and right audio channels are blended.
MODE_ALL_LEFT 2 The left channel is replicated into the right channel.
MODE_ALL_RIGHT 3 The right channel is replicated into the left channel.

AudioStreamDeviceChangeReason11+

Enumerates the reasons for audio stream device changes.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
REASON_UNKNOWN 0 Unknown reason.
REASON_NEW_DEVICE_AVAILABLE 1 A new device is available.
REASON_OLD_DEVICE_UNAVAILABLE 2 The old device is unavailable. When this reason is reported, the application should consider pausing audio playback.
REASON_OVERRODE 3 Forcibly selected.

AudioStreamDeviceChangeInfo11+

Describes the event received by the application when the audio stream device changes.

System capability: SystemCapability.Multimedia.Audio.Device

Name Type Mandatory Description
devices AudioDeviceDescriptors Yes Device information.
changeReason AudioStreamDeviceChangeReason Yes Reason for the change.

DeviceChangeType

Enumerates the device connection statuses.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
CONNECT 0 Connected.
DISCONNECT 1 Disconnected.

AudioCapturerOptions8+

Describes audio capturer configurations.

Name Type Mandatory Description
streamInfo AudioStreamInfo Yes Audio stream information.
System capability: SystemCapability.Multimedia.Audio.Capturer
capturerInfo AudioCapturerInfo Yes Audio capturer information.
System capability: SystemCapability.Multimedia.Audio.Capturer
playbackCaptureConfig10+ AudioPlaybackCaptureConfig No Configuration of internal audio recording.
System capability: SystemCapability.Multimedia.Audio.PlaybackCapture

AudioCapturerInfo8+

Describes audio capturer information.

System capability: SystemCapability.Multimedia.Audio.Core

Name Type Mandatory Description
source SourceType Yes Audio source type.
capturerFlags number Yes Audio capturer flags.
The value 0 means a common audio capturer, and 1 means a low-latency audio capturer. Currently, the ArkTS APIs do not support the low-latency audio capturer.

SourceType8+

Enumerates the audio source types.

Name Value Description
SOURCE_TYPE_INVALID -1 Invalid audio source.
System capability: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_MIC 0 Mic source.
System capability: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_VOICE_RECOGNITION9+ 1 Voice recognition source.
System capability: SystemCapability.Multimedia.Audio.Core
SOURCE_TYPE_PLAYBACK_CAPTURE10+ 2 Internal audio recording source.
System capability: SystemCapability.Multimedia.Audio.PlaybackCapture
SOURCE_TYPE_VOICE_COMMUNICATION 7 Voice communication source.
System capability: SystemCapability.Multimedia.Audio.Core

AudioPlaybackCaptureConfig10+

Defines the configuration of internal audio recording.

System capability: SystemCapability.Multimedia.Audio.PlaybackCapture

Name Type Mandatory Description
filterOptions CaptureFilterOptions Yes Options for filtering the played audio streams to be recorded.

CaptureFilterOptions10+

Defines the options for filtering the played audio streams to be recorded.

Required permissions

  • 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.

System capability: SystemCapability.Multimedia.Audio.PlaybackCapture

Name Type Mandatory Description
usages Array<StreamUsage> Yes 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.

AudioScene8+

Enumerates the audio scenes.

System capability: SystemCapability.Multimedia.Audio.Communication

Name Value Description
AUDIO_SCENE_DEFAULT 0 Default audio scene.
AUDIO_SCENE_VOICE_CHAT 3 Voice chat audio scene.

AudioManager

Implements audio volume and audio device management. Before calling any API in AudioManager, you must use getAudioManager to create an AudioManager instance.

setAudioParameter(deprecated)

setAudioParameter(key: string, value: string, callback: AsyncCallback<void>): void

Sets an audio parameter. This API uses an asynchronous callback to return the result.

This API is used to extend the audio configuration based on the hardware capability. The supported audio parameters vary according to the device and are not common parameters. Sample parameters are used in the sample code below.

NOTE

This API is supported since API version 7 and deprecated since API version 11. The substitute API is available only for system applications.

Required permissions: ohos.permission.MODIFY_AUDIO_SETTINGS

System capability: SystemCapability.Multimedia.Audio.Core

Parameters

Name Type Mandatory Description
key string Yes Key of the audio parameter to set.
value string Yes Value of the audio parameter to set.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.setAudioParameter('key_example', 'value_example', (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the audio parameter. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful setting of the audio parameter.');
});

setAudioParameter(deprecated)

setAudioParameter(key: string, value: string): Promise<void>

Sets an audio parameter. This API uses a promise to return the result.

This API is used to extend the audio configuration based on the hardware capability. The supported audio parameters vary according to the device and are not common parameters. Sample parameters are used in the sample code below.

NOTE

This API is supported since API version 7 and deprecated since API version 11. The substitute API is available only for system applications.

Required permissions: ohos.permission.MODIFY_AUDIO_SETTINGS

System capability: SystemCapability.Multimedia.Audio.Core

Parameters

Name Type Mandatory Description
key string Yes Key of the audio parameter to set.
value string Yes Value of the audio parameter to set.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.setAudioParameter('key_example', 'value_example').then(() => {
  console.info('Promise returned to indicate a successful setting of the audio parameter.');
});

getAudioParameter(deprecated)

getAudioParameter(key: string, callback: AsyncCallback<string>): void

Obtains the value of an audio parameter. This API uses an asynchronous callback to return the result.

This API is used to extend the audio configuration based on the hardware capability. The supported audio parameters vary according to the device and can be obtained from the device manual. The example below is for reference only.

NOTE

This API is supported since API version 7 and deprecated since API version 11. The substitute API is available only for system applications.

System capability: SystemCapability.Multimedia.Audio.Core

Parameters

Name Type Mandatory Description
key string Yes Key of the audio parameter whose value is to be obtained.
callback AsyncCallback<string> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the audio parameter value obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getAudioParameter('key_example', (err: BusinessError, value: string) => {
  if (err) {
    console.error(`Failed to obtain the value of the audio parameter. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
});

getAudioParameter(deprecated)

getAudioParameter(key: string): Promise<string>

Obtains the value of an audio parameter. This API uses a promise to return the result.

This API is used to extend the audio configuration based on the hardware capability. The supported audio parameters vary according to the device and can be obtained from the device manual. The example below is for reference only.

NOTE

This API is supported since API version 7 and deprecated since API version 11. The substitute API is available only for system applications.

System capability: SystemCapability.Multimedia.Audio.Core

Parameters

Name Type Mandatory Description
key string Yes Key of the audio parameter whose value is to be obtained.

Return value

Type Description
Promise<string> Promise used to return the value of the audio parameter.

Example

audioManager.getAudioParameter('key_example').then((value: string) => {
  console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
});

getAudioScene8+

getAudioScene(callback: AsyncCallback<AudioScene>): void

Obtains the audio scene. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioScene> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the audio scene obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getAudioScene((err: BusinessError, value: audio.AudioScene) => {
  if (err) {
    console.error(`Failed to obtain the audio scene mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
});

getAudioScene8+

getAudioScene(): Promise<AudioScene>

Obtains the audio scene. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Communication

Return value

Type Description
Promise<AudioScene> Promise used to return the audio scene.

Example

import { BusinessError } from '@ohos.base';

audioManager.getAudioScene().then((value: audio.AudioScene) => {
  console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
}).catch ((err: BusinessError) => {
  console.error(`Failed to obtain the audio scene mode ${err}`);
});

getAudioSceneSync10+

getAudioSceneSync(): AudioScene

Obtains the audio scene. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Communication

Return value

Type Description
AudioScene Audio scene.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: audio.AudioScene = audioManager.getAudioSceneSync();
  console.info(`indicate that the audio scene mode is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the audio scene mode ${error}`);
}

getVolumeManager9+

getVolumeManager(): AudioVolumeManager

Obtains an AudioVolumeManager instance.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
AudioVolumeManager AudioVolumeManager instance.

Example

import audio from '@ohos.multimedia.audio';

let audioVolumeManager: audio.AudioVolumeManager = audioManager.getVolumeManager();

getStreamManager9+

getStreamManager(): AudioStreamManager

Obtains an AudioStreamManager instance.

System capability: SystemCapability.Multimedia.Audio.Core

Return value

Type Description
AudioStreamManager AudioStreamManager instance.

Example

import audio from '@ohos.multimedia.audio';

let audioStreamManager: audio.AudioStreamManager = audioManager.getStreamManager();

getRoutingManager9+

getRoutingManager(): AudioRoutingManager

Obtains an AudioRoutingManager instance.

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
AudioRoutingManager AudioRoutingManager instance.

Example

import audio from '@ohos.multimedia.audio';

let audioRoutingManager: audio.AudioRoutingManager = audioManager.getRoutingManager();

setVolume(deprecated)

setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void

Sets the volume for a stream. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use setVolume in AudioVolumeGroupManager. The substitute API is available only for system applications.

Required permissions: ohos.permission.ACCESS_NOTIFICATION_POLICY

This permission is required only for muting or unmuting the ringer when volumeType is set to AudioVolumeType.RINGTONE.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volume number Yes Volume to set. The value range can be obtained by calling getMinVolume and getMaxVolume.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful volume setting.');
});

setVolume(deprecated)

setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>

Sets the volume for a stream. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use setVolume in AudioVolumeGroupManager. The substitute API is available only for system applications.

Required permissions: ohos.permission.ACCESS_NOTIFICATION_POLICY

This permission is required only for muting or unmuting the ringer when volumeType is set to AudioVolumeType.RINGTONE.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volume number Yes Volume to set. The value range can be obtained by calling getMinVolume and getMaxVolume.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
  console.info('Promise returned to indicate a successful volume setting.');
});

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the volume of a stream. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume is obtained.');
});

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the volume of a stream. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the volume.

Example

audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
  console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
});

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the minimum volume allowed for a stream. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getMinVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the minimum stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the minimum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
});

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the minimum volume allowed for a stream. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getMinVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the minimum volume.

Example

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
  console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
});

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the maximum volume allowed for a stream. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getMaxVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the maximum stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the maximum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the maximum volume allowed for a stream. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getMaxVolume in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the maximum volume.

Example

audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => {
  console.info('Promised returned to indicate that the maximum volume is obtained.');
});

mute(deprecated)

mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void

Mutes or unmutes a stream. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
mute boolean Yes Mute status to set. The value true means to mute the stream, and false means the opposite.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the stream. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the stream is muted.');
});

mute(deprecated)

mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>

Mutes or unmutes a stream. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
mute boolean Yes Mute status to set. The value true means to mute the stream, and false means the opposite.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
  console.info('Promise returned to indicate that the stream is muted.');
});

isMute(deprecated)

isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

Checks whether a stream is muted. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isMute in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the stream is muted or false if not muted; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
});

isMute(deprecated)

isMute(volumeType: AudioVolumeType): Promise<boolean>

Checks whether a stream is muted. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isMute in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<boolean> Promise used to return the mute status of the stream. The value true means that the stream is muted, and false means the opposite.

Example

audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
});

isActive(deprecated)

isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

Checks whether a stream is active. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isActive in AudioStreamManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the stream is active or false if not active; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the stream. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});

isActive(deprecated)

isActive(volumeType: AudioVolumeType): Promise<boolean>

Checks whether a stream is active. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isActive in AudioStreamManager.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<boolean> Promise used to return the active status of the stream. The value true means that the stream is active, and false means the opposite.

Example

audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
});

setRingerMode(deprecated)

setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void

Sets the ringer mode. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

Required permissions: ohos.permission.ACCESS_NOTIFICATION_POLICY

This permission is required only for muting or unmuting the ringer.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
mode AudioRingMode Yes Ringer mode.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the ringer mode. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
});

setRingerMode(deprecated)

setRingerMode(mode: AudioRingMode): Promise<void>

Sets the ringer mode. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

Required permissions: ohos.permission.ACCESS_NOTIFICATION_POLICY

This permission is required only for muting or unmuting the ringer.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
mode AudioRingMode Yes Ringer mode.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
  console.info('Promise returned to indicate a successful setting of the ringer mode.');
});

getRingerMode(deprecated)

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

Obtains the ringer mode. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getRingerMode in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioRingMode> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the ringer mode obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
  if (err) {
    console.error(`Failed to obtain the ringer mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
});

getRingerMode(deprecated)

getRingerMode(): Promise<AudioRingMode>

Obtains the ringer mode. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getRingerMode in AudioVolumeGroupManager.

System capability: SystemCapability.Multimedia.Audio.Communication

Return value

Type Description
Promise<AudioRingMode> Promise used to return the ringer mode.

Example

audioManager.getRingerMode().then((value: audio.AudioRingMode) => {
  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
});

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void

Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getDevices in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceFlag DeviceFlag Yes Audio device flag.
callback AsyncCallback<AudioDeviceDescriptors> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the audio devices obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
});

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

Obtains the audio devices with a specific flag. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use getDevices in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceFlag DeviceFlag Yes Audio device flag.

Return value

Type Description
Promise<AudioDeviceDescriptors> Promise used to return the device list.

Example

audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => {
  console.info('Promise returned to indicate that the device list is obtained.');
});

setDeviceActive(deprecated)

setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void

Sets a device to the active state. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use setCommunicationDevice in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceType ActiveDeviceType Yes Active audio device type.
active boolean Yes Active state to set. The value true means to set the device to the active state, and false means the opposite.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device is set to the active status.');
});

setDeviceActive(deprecated)

setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>

Sets a device to the active state. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use setCommunicationDevice in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceType ActiveDeviceType Yes Active audio device type.
active boolean Yes Active state to set. The value true means to set the device to the active state, and false means the opposite.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
  console.info('Promise returned to indicate that the device is set to the active status.');
});

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void

Checks whether a device is active. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isCommunicationDeviceActive in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceType ActiveDeviceType Yes Active audio device type.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the stream is active or false if not active; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
});

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>

Checks whether a device is active. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isCommunicationDeviceActive in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceType ActiveDeviceType Yes Active audio device type.

Return value

Type Description
Promise<boolean> Promise used to return the active status of the device. The value true means that the device is active, and false means the opposite.

Example

audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value: boolean) => {
  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void

Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

Required permissions: ohos.permission.MICROPHONE

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
mute boolean Yes Mute status to set. The value true means to mute the microphone, and false means the opposite.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.setMicrophoneMute(true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

Mutes or unmutes the microphone. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. The substitute API is available only for system applications.

Required permissions: ohos.permission.MICROPHONE

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
mute boolean Yes Mute status to set. The value true means to mute the microphone, and false means the opposite.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioManager.setMicrophoneMute(true).then(() => {
  console.info('Promise returned to indicate that the microphone is muted.');
});

isMicrophoneMute(deprecated)

isMicrophoneMute(callback: AsyncCallback<boolean>): void

Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isMicrophoneMute in AudioVolumeGroupManager.

Required permissions: ohos.permission.MICROPHONE

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the microphone is muted or false if not muted; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
});

isMicrophoneMute(deprecated)

isMicrophoneMute(): Promise<boolean>

Checks whether the microphone is muted. This API uses a promise to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use isMicrophoneMute in AudioVolumeGroupManager.

Required permissions: ohos.permission.MICROPHONE

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
Promise<boolean> Promise used to return the mute status of the microphone. The value true means that the microphone is muted, and false means the opposite.

Example

audioManager.isMicrophoneMute().then((value: boolean) => {
  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
});

on('deviceChange')(deprecated)

on(type: 'deviceChange', callback: Callback<DeviceChangeAction>): void

Subscribes to audio device connection change events. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use on('deviceChange') in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'deviceChange' is triggered when the device connection status is changed.
callback Callback<DeviceChangeAction> Yes Callback used to return the device change details.

Example

audioManager.on('deviceChange', (deviceChanged: audio.DeviceChangeAction) => {
  console.info(`device change type : ${deviceChanged.type} `);
  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
});

off('deviceChange')(deprecated)

off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void

Unsubscribes from audio device connection change events. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 9. You are advised to use off('deviceChange') in AudioRoutingManager.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'deviceChange' is triggered when the device connection status is changed.
callback Callback<DeviceChangeAction> No Callback used to return the device change details.

Example

audioManager.off('deviceChange');

on('interrupt')(deprecated)

on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback<InterruptAction>): void

Subscribes to audio interruption events. When the application's audio is interrupted by another playback event, the application will receive the callback. This API uses an asynchronous callback to return the result.

Same as on('audioInterrupt'), this API is used to listen for focus changes. However, this API is used in scenarios without audio streams (no AudioRenderer instance is created), such as frequency modulation (FM) and voice wakeup.

NOTE

This API is supported since API version 7 and deprecated since API version 11. You are advised to use on('audioInterrupt') in AudioCapturer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'interrupt' is triggered when the audio playback of the current application is interrupted by another application.
interrupt AudioInterrupt Yes Audio interruption event type.
callback Callback<InterruptAction> Yes Callback used to return the audio interruption event.

Example

import audio from '@ohos.multimedia.audio';

let interAudioInterrupt: audio.AudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};
audioManager.on('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => {
  if (InterruptAction.actionType === 0) {
    console.info('An event to gain the audio focus starts.');
    console.info(`Focus gain event: ${InterruptAction} `);
  }
  if (InterruptAction.actionType === 1) {
    console.info('An audio interruption event starts.');
    console.info(`Audio interruption event: ${InterruptAction} `);
  }
});

off('interrupt')(deprecated)

off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback<InterruptAction>): void

Unsubscribes from audio interruption events. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 7 and deprecated since API version 11. You are advised to use off('audioInterrupt') in AudioCapturer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'interrupt' is triggered when the audio playback of the current application is interrupted by another application.
interrupt AudioInterrupt Yes Audio interruption event type.
callback Callback<InterruptAction> No Callback used to return the audio interruption event.

Example

import audio from '@ohos.multimedia.audio';

let interAudioInterrupt: audio.AudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};
audioManager.off('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => {
  if (InterruptAction.actionType === 0) {
    console.info('An event to release the audio focus starts.');
    console.info(`Focus release event: ${InterruptAction} `);
  }
});

AudioVolumeManager9+

Implements audio volume management. Before calling an API in AudioVolumeManager, you must use getVolumeManager to obtain an AudioVolumeManager instance.

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void

Obtains the volume group manager. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
groupId number Yes Volume group ID. The default value is LOCAL_VOLUME_GROUP_ID.
callback AsyncCallback<AudioVolumeGroupManager> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the volume group manager obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
audioVolumeManager.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => {
  if (err) {
    console.error(`Failed to obtain the volume group infos list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
});

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>

Obtains the volume group manager. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
groupId number Yes Volume group ID. The default value is LOCAL_VOLUME_GROUP_ID.

Return value

Type Description
Promise< AudioVolumeGroupManager > Promise used to return the volume group manager.

Example

import audio from '@ohos.multimedia.audio';

let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
let audioVolumeGroupManager: audio.AudioVolumeGroupManager | undefined = undefined;
async function getVolumeGroupManager(){
  audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId);
  console.info('Promise returned to indicate that the volume group infos list is obtained.');
}

getVolumeGroupManagerSync10+

getVolumeGroupManagerSync(groupId: number): AudioVolumeGroupManager

Obtains the volume group manager. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
groupId number Yes Volume group ID. The default value is LOCAL_VOLUME_GROUP_ID.

Return value

Type Description
AudioVolumeGroupManager Volume group manager.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID);
  console.info(`Get audioVolumeGroupManager success.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to get audioVolumeGroupManager, error: ${error}`);
}

on('volumeChange')9+

on(type: 'volumeChange', callback: Callback<VolumeEvent>): void

Subscribes to system volume change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'volumeChange' is triggered when the system volume is changed.
callback Callback<VolumeEvent> Yes Callback used to return the changed volume.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});

AudioVolumeGroupManager9+

Manages the volume of an audio group. Before calling any API in AudioVolumeGroupManager, you must use getVolumeGroupManager to obtain an AudioVolumeGroupManager instance.

getVolume9+

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the volume of a stream. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the volume is obtained.');
});

getVolume9+

getVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the volume of a stream. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the volume.

Example

audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
  console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
});

getVolumeSync10+

getVolumeSync(volumeType: AudioVolumeType): number;

Obtains the volume of a stream. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
number Volume of the stream.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the volume is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the volume, error ${error}.`);
}

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the minimum volume allowed for a stream. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the minimum stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the minimum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
});

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the minimum volume allowed for a stream. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the minimum volume.

Example

audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
  console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
});

getMinVolumeSync10+

getMinVolumeSync(volumeType: AudioVolumeType): number;

Obtains the minimum volume allowed for a stream. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
number Minimum volume.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the minimum volume is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the minimum volume, error ${error}.`);
}

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void

Obtains the maximum volume allowed for a stream. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the maximum stream volume obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
  if (err) {
    console.error(`Failed to obtain the maximum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

Obtains the maximum volume allowed for a stream. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<number> Promise used to return the maximum volume.

Example

audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => {
  console.info('Promised returned to indicate that the maximum volume is obtained.');
});

getMaxVolumeSync10+

getMaxVolumeSync(volumeType: AudioVolumeType): number;

Obtains the maximum volume allowed for a stream. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
number Maximum volume.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the maximum volume is obtained. ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the maximum volume, error ${error}.`);
}

isMute9+

isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

Checks whether a stream is muted. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the stream is muted or false if not muted; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
});

isMute9+

isMute(volumeType: AudioVolumeType): Promise<boolean>

Checks whether a stream is muted. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
Promise<boolean> Promise used to return the mute status of the stream. The value true means that the stream is muted, and false means the opposite.

Example

audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
});

isMuteSync10+

isMuteSync(volumeType: AudioVolumeType): boolean

Checks whether a stream is muted. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.

Return value

Type Description
boolean Returns true if the stream is muted; returns false otherwise.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the mute status of the stream is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the mute status of the stream, error ${error}.`);
}

getRingerMode9+

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

Obtains the ringer mode. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioRingMode> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the ringer mode obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
  if (err) {
    console.error(`Failed to obtain the ringer mode. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
});

getRingerMode9+

getRingerMode(): Promise<AudioRingMode>

Obtains the ringer mode. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
Promise<AudioRingMode> Promise used to return the ringer mode.

Example

audioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => {
  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
});

getRingerModeSync10+

getRingerModeSync(): AudioRingMode

Obtains the ringer mode. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
AudioRingMode Ringer mode.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync();
  console.info(`Indicate that the ringer mode is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the ringer mode, error ${error}.`);
}

on('ringerModeChange')9+

on(type: 'ringerModeChange', callback: Callback<AudioRingMode>): void

Subscribes to ringer mode change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'ringerModeChange' is triggered when the ringer mode is changed.
callback Callback<AudioRingMode> Yes Callback used to return the changed ringer mode.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => {
  console.info(`Updated ringermode: ${ringerMode}`);
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void

Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 9 and deprecated since API version 11. The substitute API is available only for system applications.

Required permissions: ohos.permission.MANAGE_AUDIO_CONFIG (available only for system applications)

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
mute boolean Yes Mute status to set. The value true means to mute the microphone, and false means the opposite.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
});

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

Mutes or unmutes the microphone. This API uses a promise to return the result.

NOTE

This API is supported since API version 9 and deprecated since API version 11. The substitute API is available only for system applications.

Required permissions: ohos.permission.MANAGE_AUDIO_CONFIG (available only for system applications)

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
mute boolean Yes Mute status to set. The value true means to mute the microphone, and false means the opposite.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
  console.info('Promise returned to indicate that the microphone is muted.');
});

isMicrophoneMute9+

isMicrophoneMute(callback: AsyncCallback<boolean>): void

Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the microphone is muted or false if not muted; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
});

isMicrophoneMute9+

isMicrophoneMute(): Promise<boolean>

Checks whether the microphone is muted. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
Promise<boolean> Promise used to return the mute status of the microphone. The value true means that the microphone is muted, and false means the opposite.

Example

audioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => {
  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
});

isMicrophoneMuteSync10+

isMicrophoneMuteSync(): boolean

Checks whether the microphone is muted. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
boolean Returns true if the microphone is muted; returns false otherwise.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync();
  console.info(`Indicate that the mute status of the microphone is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the mute status of the microphone, error ${error}.`);
}

on('micStateChange')9+

on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void

Subscribes to system microphone state change events. This API uses an asynchronous callback to return the result.

Currently, when multiple AudioManager instances are used in a single process, only the subscription of the last instance takes effect, and the subscription of other instances is overwritten (even if the last instance does not initiate a subscription). Therefore, you are advised to use a single AudioManager instance.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'micStateChange' is triggered when the system microphone state is changed.
callback Callback<MicStateChangeEvent> Yes Callback used to return the changed microphone state.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => {
  console.info(`Current microphone status is: ${micStateChange.mute} `);
});

isVolumeUnadjustable10+

isVolumeUnadjustable(): boolean

Checks whether the fixed volume mode is enabled. When the fixed volume mode is enabled, the volume cannot be adjusted. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Return value

Type Description
boolean Returns the status of the fixed volume mode. The value true means that the fixed volume mode is enabled, and false means the opposite.

Example

let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable();
console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`);

getSystemVolumeInDb10+

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void

Obtains the volume gain. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volumeLevel number Yes Volume level.
device DeviceType Yes Device type.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the volume gain obtained; otherwise, err is an error object.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by callback.
6800301 System error. Return by callback.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => {
  if (err) {
    console.error(`Failed to get the volume DB. ${err}`);
  } else {
    console.info(`Success to get the volume DB. ${dB}`);
  }
});

getSystemVolumeInDb10+

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number>

Obtains the volume gain. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volumeLevel number Yes Volume level.
device DeviceType Yes Device type.

Return value

Type Description
Promise<number> Promise used to return the volume gain (in dB).

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by promise.
6800301 System error. Return by promise.

Example

import { BusinessError } from '@ohos.base';

audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => {
  console.info(`Success to get the volume DB. ${value}`);
}).catch((error: BusinessError) => {
  console.error(`Fail to adjust the system volume by step. ${error}`);
});

getSystemVolumeInDbSync10+

getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number

Obtains the volume gain. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Volume

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream type.
volumeLevel number Yes Volume level.
device DeviceType Yes Device type.

Return value

Type Description
number Volume gain (in dB).

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER);
  console.info(`Success to get the volume DB. ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Fail to adjust the system volume by step. ${error}`);
}

AudioStreamManager9+

Implements audio stream management. Before calling any API in AudioStreamManager, you must use getStreamManager to obtain an AudioStreamManager instance.

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void

Obtains the information about the current audio renderer. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioRendererChangeInfoArray> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the information about the current audio renderer obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioStreamManager.getCurrentAudioRendererInfoArray(async (err: BusinessError, AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  } else {
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }
});

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>

Obtains the information about the current audio renderer. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioRendererChangeInfoArray> Promise used to return the renderer information.

Example

import { BusinessError } from '@ohos.base';

async function getCurrentAudioRendererInfoArray(){
  await audioStreamManager.getCurrentAudioRendererInfoArray().then((AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
    console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  });
}

getCurrentAudioRendererInfoArraySync10+

getCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray

Obtains the information about the current audio renderer. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
AudioRendererChangeInfoArray Audio renderer information.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync();
  console.info(`getCurrentAudioRendererInfoArraySync success.`);
  if (audioRendererChangeInfoArray != null) {
    for (let i = 0; i < audioRendererChangeInfoArray.length; i++) {
      let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i];
      console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
      console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
      console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
      console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
      for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
        console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
        console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
        console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
        console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
        console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
        console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
        console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
        console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
      }
    }
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`getCurrentAudioRendererInfoArraySync :ERROR: ${error}`);
}

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void

Obtains the information about the current audio capturer. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioCapturerChangeInfoArray> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the information about the current audio capturer obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioStreamManager.getCurrentAudioCapturerInfoArray(async (err: BusinessError, AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  } else {
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        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(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }
});

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>

Obtains the information about the current audio capturer. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioCapturerChangeInfoArray> Promise used to return the audio capturer information.

Example

import { BusinessError } from '@ohos.base';

async function getCurrentAudioCapturerInfoArray(){
  await audioStreamManager.getCurrentAudioCapturerInfoArray().then((AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
    console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        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(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
        }
      }
    }
  }).catch((err: BusinessError) => {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  });
}

getCurrentAudioCapturerInfoArraySync10+

getCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray

Obtains the information about the current audio capturer. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
AudioCapturerChangeInfoArray Audio capturer information.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync();
  console.info('getCurrentAudioCapturerInfoArraySync success.');
  if (audioCapturerChangeInfoArray != null) {
    for (let i = 0; i < audioCapturerChangeInfoArray.length; i++) {
      console.info(`StreamId for ${i} is: ${audioCapturerChangeInfoArray[i].streamId}`);
      console.info(`Source for ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.source}`);
      console.info(`Flag  ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
      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(`Address: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
        console.info(`SampleRate: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
        console.info(`ChannelCount: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
        console.info(`ChannelMask: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
      }
    }
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`getCurrentAudioCapturerInfoArraySync ERROR: ${error}`);
}

on('audioRendererChange')9+

on(type: 'audioRendererChange', callback: Callback<AudioRendererChangeInfoArray>): void

Subscribes to audio renderer change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioRendererChange' is triggered when the audio renderer is changed.
callback Callback<AudioRendererChangeInfoArray> Yes Callback used to return the audio renderer information.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
    let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
    console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
    console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
    for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

off('audioRendererChange')9+

off(type: 'audioRendererChange'): void

Unsubscribes from audio renderer change events.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioRendererChange' is triggered when the audio renderer is changed.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioStreamManager.off('audioRendererChange');
console.info('######### RendererChange Off is called #########');

on('audioCapturerChange')9+

on(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfoArray>): void

Subscribes to audio capturer change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioCapturerChange' is triggered when the audio capturer is changed.
callback Callback<AudioCapturerChangeInfoArray> Yes Callback used to return the audio capturer information.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    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(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
    }
  }
});

off('audioCapturerChange')9+

off(type: 'audioCapturerChange'): void

Unsubscribes from audio capturer change events.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioCapturerChange' is triggered when the audio capturer is changed.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioStreamManager.off('audioCapturerChange');
console.info('######### CapturerChange Off is called #########');

isActive9+

isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void

Checks whether a stream is active. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream types.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the stream is active or false if not active; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
if (err) {
  console.error(`Failed to obtain the active status of the stream. ${err}`);
  return;
}
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});

isActive9+

isActive(volumeType: AudioVolumeType): Promise<boolean>

Checks whether a stream is active. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream types.

Return value

Type Description
Promise<boolean> Promise used to return the active status of the stream. The value true means that the stream is active, and false means the opposite.

Example

audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
});

isActiveSync10+

isActiveSync(volumeType: AudioVolumeType): boolean

Checks whether a stream is active. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volumeType AudioVolumeType Yes Audio stream types.

Return value

Type Description
boolean Returns true if the stream is active; returns false otherwise.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA);
  console.info(`Indicate that the active status of the stream is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the active status of the stream ${error}.`);
}

getAudioEffectInfoArray10+

getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void

Obtains information about the audio effect mode in use. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
usage StreamUsage Yes Audio stream usage.
callback AsyncCallback<AudioEffectInfoArray> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the information about the audio effect mode obtained; otherwise, err is an error object.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by callback.

Example

import { BusinessError } from '@ohos.base';

audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC, async (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => {
  console.info('getAudioEffectInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
    return;
  } else {
    console.info(`The effect modes are: ${audioEffectInfoArray}`);
  }
});

getAudioEffectInfoArray10+

getAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray>

Obtains information about the audio effect mode in use. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
usage StreamUsage Yes Audio stream usage.

Return value

Type Description
Promise<AudioEffectInfoArray> Promise used to return the information about the audio effect mode obtained.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by promise.

Example

import { BusinessError } from '@ohos.base';

audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => {
  console.info('getAudioEffectInfoArray ######### Get Promise is called ##########');
  console.info(`The effect modes are: ${audioEffectInfoArray}`);
}).catch((err: BusinessError) => {
  console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
});

getAudioEffectInfoArraySync10+

getAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray

Obtains information about the audio effect mode in use. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
usage StreamUsage Yes Audio stream usage.

Return value

Type Description
AudioEffectInfoArray Information about the audio effect mode.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioEffectInfoArray: audio.AudioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MUSIC);
  console.info(`The effect modes are: ${audioEffectInfoArray}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`getAudioEffectInfoArraySync ERROR: ${error}`);
}

AudioRoutingManager9+

Implements audio routing management. Before calling any API in AudioRoutingManager, you must use getRoutingManager to obtain an AudioRoutingManager instance.

getDevices9+

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void

Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceFlag DeviceFlag Yes Audio device flag.
callback AsyncCallback<AudioDeviceDescriptors> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the audio devices obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
});

getDevices9+

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

Obtains the audio devices with a specific flag. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceFlag DeviceFlag Yes Audio device flag.

Return value

Type Description
Promise<AudioDeviceDescriptors> Promise used to return the device list.

Example

audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => {
  console.info('Promise returned to indicate that the device list is obtained.');
});

getDevicesSync10+

getDevicesSync(deviceFlag: DeviceFlag): AudioDeviceDescriptors

Obtains the audio devices with a specific flag. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
deviceFlag DeviceFlag Yes Audio device flag.

Return value

Type Description
AudioDeviceDescriptors Device list.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let data: audio.AudioDeviceDescriptors = audioRoutingManager.getDevicesSync(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
  console.info(`Indicate that the device list is obtained ${data}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the device list. ${error}`);
}

on('deviceChange')9+

on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction>): void

Subscribes to audio device connection change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'deviceChange' is triggered when the device connection status is changed.
deviceFlag DeviceFlag Yes Audio device flag.
callback Callback<DeviceChangeAction> Yes Callback used to return the device change details.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => {
  console.info('device change type : ' + deviceChanged.type);
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
});

off('deviceChange')9+

off(type: 'deviceChange', callback?: Callback<DeviceChangeAction>): void

Unsubscribes from audio device connection change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'deviceChange' is triggered when the device connection status is changed.
callback Callback<DeviceChangeAction> No Callback used to return the device change details.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioRoutingManager.off('deviceChange');

setCommunicationDevice9+

setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void

Sets a communication device to the active state. This API uses an asynchronous callback to return the result.

This API will be deprecated in a later version due to function design changes. You are not advised to use it.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
deviceType CommunicationDeviceType Yes Communication device type.
active boolean Yes Active status of the device. The value true means to set the device to the active state, and false means the opposite.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err: BusinessError) => {
  if (err) {
    console.error(`Failed to set the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device is set to the active status.');
});

setCommunicationDevice9+

setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>

Sets a communication device to the active state. This API uses a promise to return the result.

This API will be deprecated in a later version due to function design changes. You are not advised to use it.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
deviceType CommunicationDeviceType Yes Communication device type.
active boolean Yes Active status of the device. The value true means to set the device to the active state, and false means the opposite.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
  console.info('Promise returned to indicate that the device is set to the active status.');
});

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void

Checks whether a communication device is active. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
deviceType CommunicationDeviceType Yes Communication device type.
callback AsyncCallback<boolean> Yes Callback used to return the result. If the operation is successful, err is undefined and data is true if the communication device is active or false if not active; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
  if (err) {
    console.error(`Failed to obtain the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
});

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>

Checks whether a communication device is active. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
deviceType CommunicationDeviceType Yes Communication device type.

Return value

Type Description
Promise<boolean> Promise used to return the active status of the device. The value true means that the device is active, and false means the opposite.

Example

audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value: boolean) => {
  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
});

isCommunicationDeviceActiveSync10+

isCommunicationDeviceActiveSync(deviceType: CommunicationDeviceType): boolean

Checks whether a communication device is active. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Communication

Parameters

Name Type Mandatory Description
deviceType CommunicationDeviceType Yes Communication device type.

Return value

Type Description
boolean Returns true if the device is active; returns false otherwise.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  let value: boolean = audioRoutingManager.isCommunicationDeviceActiveSync(audio.CommunicationDeviceType.SPEAKER);
  console.info(`Indicate that the active status of the device is obtained ${value}.`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Failed to obtain the active status of the device ${error}.`);
}

getPreferOutputDeviceForRendererInfo10+

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void

Obtains the output device with the highest priority based on the audio renderer information. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
rendererInfo AudioRendererInfo Yes Audio renderer information.
callback AsyncCallback<AudioDeviceDescriptors> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the output device with the highest priority obtained; otherwise, err is an error object.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error. Return by callback.
6800301 System error. Return by callback.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let rendererInfo: audio.AudioRendererInfo = {
  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
  rendererFlags : 0
}

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
    if (err) {
      console.error(`Result ERROR: ${err}`);
    } else {
      console.info(`device descriptor: ${desc}`);
    }
  });
}

getPreferOutputDeviceForRendererInfo10+

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors>

Obtains the output device with the highest priority based on the audio renderer information. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
rendererInfo AudioRendererInfo Yes Audio renderer information.

Return value

Type Description
Promise<AudioDeviceDescriptors> Promise used to return the information about the output device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error. Return by promise.
6800301 System error. Return by promise.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let rendererInfo: audio.AudioRendererInfo = {
  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
  rendererFlags : 0
}

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc: audio.AudioDeviceDescriptors) => {
    console.info(`device descriptor: ${desc}`);
  }).catch((err: BusinessError) => {
    console.error(`Result ERROR: ${err}`);
  })
}

getPreferredOutputDeviceForRendererInfoSync10+

getPreferredOutputDeviceForRendererInfoSync(rendererInfo: AudioRendererInfo): AudioDeviceDescriptors

Obtains the output device with the highest priority based on the audio renderer information. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
rendererInfo AudioRendererInfo Yes Audio renderer information.

Return value

Type Description
AudioDeviceDescriptors Information about the output device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let rendererInfo: audio.AudioRendererInfo = {
  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
  rendererFlags : 0
}

try {
  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredOutputDeviceForRendererInfoSync(rendererInfo);
  console.info(`device descriptor: ${desc}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Result ERROR: ${error}`);
}

on('preferOutputDeviceChangeForRendererInfo')10+

on(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors>): void

Subscribes to the change of the output device with the highest priority. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'preferOutputDeviceChangeForRendererInfo' is triggered when the output device with the highest priority is changed.
rendererInfo AudioRendererInfo Yes Audio renderer information.
callback Callback<AudioDeviceDescriptors> Yes Callback used to return the information about the output device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

import audio from '@ohos.multimedia.audio';

let rendererInfo: audio.AudioRendererInfo = {
  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
  rendererFlags : 0
}

audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
});

off('preferOutputDeviceChangeForRendererInfo')10+

off(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors>): void

Unsubscribes from the change of the output device with the highest priority. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'preferOutputDeviceChangeForRendererInfo' is triggered when the output device with the highest priority is changed.
callback Callback<AudioDeviceDescriptors> No Callback used to return the information about the output device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo');

getPreferredInputDeviceForCapturerInfo10+

getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void

Obtains the input device with the highest priority based on the audio capturer information. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
capturerInfo AudioCapturerInfo Yes Audio capturer information.
callback AsyncCallback<AudioDeviceDescriptors> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the input device with the highest priority obtained; otherwise, err is an error object.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by callback.
6800301 System error. Return by callback.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`Result ERROR: ${err}`);
  } else {
    console.info(`device descriptor: ${desc}`);
  }
});

getPreferredInputDeviceForCapturerInfo10+

getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo): Promise<AudioDeviceDescriptors>

Obtains the input device with the highest priority based on the audio capturer information. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
capturerInfo AudioCapturerInfo Yes Audio capturer information.

Return value

Type Description
Promise<AudioDeviceDescriptors> Promise used to return the information about the input device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by promise.
6800301 System error. Return by promise.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo).then((desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
}).catch((err: BusinessError) => {
  console.error(`Result ERROR: ${err}`);
});

getPreferredInputDeviceForCapturerInfoSync10+

getPreferredInputDeviceForCapturerInfoSync(capturerInfo: AudioCapturerInfo): AudioDeviceDescriptors

Obtains the input device with the highest priority based on the audio capturer information. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
capturerInfo AudioCapturerInfo Yes Audio capturer information.

Return value

Type Description
AudioDeviceDescriptors Information about the input device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import audio from '@ohos.multimedia.audio';
import { BusinessError } from '@ohos.base';

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

try {
  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredInputDeviceForCapturerInfoSync(capturerInfo);
  console.info(`device descriptor: ${desc}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Result ERROR: ${error}`);
}

on('preferredInputDeviceChangeForCapturerInfo')10+

on(type: 'preferredInputDeviceChangeForCapturerInfo', capturerInfo: AudioCapturerInfo, callback: Callback<AudioDeviceDescriptors>): void

Subscribes to the change of the input device with the highest priority. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'preferredInputDeviceChangeForCapturerInfo' is triggered when the input device with the highest priority is changed.
capturerInfo AudioCapturerInfo Yes Audio capturer information.
callback Callback<AudioDeviceDescriptors> Yes Callback used to return the information about the input device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import audio from '@ohos.multimedia.audio';

let capturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
}

audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, (desc: audio.AudioDeviceDescriptors) => {
  console.info(`device descriptor: ${desc}`);
});

off('preferredInputDeviceChangeForCapturerInfo')10+

off(type: 'preferredInputDeviceChangeForCapturerInfo', callback?: Callback<AudioDeviceDescriptors>): void

Unsubscribes from the change of the input device with the highest priority. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'preferredInputDeviceChangeForCapturerInfo' is triggered when the input device with the highest priority is changed.
callback Callback<AudioDeviceDescriptors> No Callback used to return the information about the input device with the highest priority.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo');

AudioRendererChangeInfoArray9+

Defines an AudioRenderChangeInfo array, which is read-only.

System capability: SystemCapability.Multimedia.Audio.Renderer

AudioRendererChangeInfo9+

Describes the audio renderer change event.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Type Readable Writable Description
streamId number Yes No Unique ID of an audio stream.
rendererInfo AudioRendererInfo Yes No Audio renderer information.
deviceDescriptors AudioDeviceDescriptors Yes No Audio device description.

Example

import audio from '@ohos.multimedia.audio';

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]}`);
    }
  }
});

AudioCapturerChangeInfoArray9+

Defines an AudioCapturerChangeInfo array, which is read-only.

System capability: SystemCapability.Multimedia.Audio.Capturer

AudioCapturerChangeInfo9+

Describes the audio capturer change event.

System capability: SystemCapability.Multimedia.Audio.Capturer

Name Type Readable Writable Description
streamId number Yes No Unique ID of an audio stream.
capturerInfo AudioCapturerInfo Yes No Audio capturer information.
deviceDescriptors AudioDeviceDescriptors Yes No Audio device description.
muted11+ boolean Yes No Whether the audio capturer is muted. The value true means that the audio capturer is muted, and false means the opposite.

Example

import audio from '@ohos.multimedia.audio';

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]}`);
    }
  }
});

AudioEffectInfoArray10+

Defines an array that contains the audio effect mode corresponding to a specific audio content type (specified by ContentType) and audio stream usage (specified by StreamUsage). The AudioEffectMode array is read-only.

AudioDeviceDescriptors

Defines an AudioDeviceDescriptor array, which is read-only.

AudioDeviceDescriptor

Describes an audio device.

Name Type Readable Writable Description
deviceRole DeviceRole Yes No Device role.
System capability: SystemCapability.Multimedia.Audio.Device
deviceType DeviceType Yes No Device type.
System capability: SystemCapability.Multimedia.Audio.Device
id9+ number Yes No Device ID, which is unique.
System capability: SystemCapability.Multimedia.Audio.Device
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
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
sampleRates9+ Array<number> Yes No Supported sampling rates.
System capability: SystemCapability.Multimedia.Audio.Device
channelCounts9+ Array<number> Yes No Number of channels supported.
System capability: SystemCapability.Multimedia.Audio.Device
channelMasks9+ Array<number> Yes No Supported channel masks.
System capability: SystemCapability.Multimedia.Audio.Device
displayName10+ string Yes No Display name of the device.
System capability: SystemCapability.Multimedia.Audio.Device
encodingTypes11+ Array<AudioEncodingType> Yes No Supported encoding types.
System capability: SystemCapability.Multimedia.Audio.Core

Example

import audio from '@ohos.multimedia.audio';

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().getDevices(1).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');
  }
});

AudioRenderer8+

Provides APIs for audio rendering. Before calling any API in AudioRenderer, you must use createAudioRenderer to create an AudioRenderer instance.

Attributes

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Type Readable Writable Description
state8+ AudioState Yes No Audio renderer state.

Example

import audio from '@ohos.multimedia.audio';

let state: audio.AudioState = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void

Obtains the renderer information of this AudioRenderer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioRendererInfo> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the renderer information obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getRendererInfo((err: BusinessError, rendererInfo: audio.AudioRendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
});

getRendererInfo8+

getRendererInfo(): Promise<AudioRendererInfo>

Obtains the renderer information of this AudioRenderer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioRendererInfo> Promise used to return the renderer information.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getRendererInfo().then((rendererInfo: audio.AudioRendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
});

getRendererInfoSync10+

getRendererInfoSync(): AudioRendererInfo

Obtains the renderer information of this AudioRenderer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
AudioRendererInfo Audio renderer information.

Example

import { BusinessError } from '@ohos.base';

try {
  let rendererInfo: audio.AudioRendererInfo = audioRenderer.getRendererInfoSync();
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${error}`);
}

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

Obtains the stream information of this AudioRenderer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioStreamInfo> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream information obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
});

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

Obtains the stream information of this AudioRenderer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioStreamInfo> Promise used to return the stream information.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getStreamInfo().then((streamInfo: audio.AudioStreamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getStreamInfoSync10+

getStreamInfoSync(): AudioStreamInfo

Obtains the stream information of this AudioRenderer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
AudioStreamInfo Stream information.

Example

import { BusinessError } from '@ohos.base';

try {
  let streamInfo: audio.AudioStreamInfo = audioRenderer.getStreamInfoSync();
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

Obtains the stream ID of this AudioRenderer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream ID obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioStreamId((err: BusinessError, streamId: number) => {
  console.info(`Renderer GetStreamId: ${streamId}`);
});

getAudioStreamId9+

getAudioStreamId(): Promise<number>

Obtains the stream ID of this AudioRenderer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the stream ID.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioStreamId().then((streamId: number) => {
  console.info(`Renderer getAudioStreamId: ${streamId}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioStreamIdSync10+

getAudioStreamIdSync(): number

Obtains the stream ID of this AudioRenderer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Stream ID.

Example

import { BusinessError } from '@ohos.base';

try {
  let streamId: number = audioRenderer.getAudioStreamIdSync();
  console.info(`Renderer getAudioStreamIdSync: ${streamId}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

setAudioEffectMode10+

setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback<void>): void

Sets an audio effect mode. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
mode AudioEffectMode Yes Audio effect mode to set.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by callback.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err: BusinessError) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful audio effect mode setting.');
  }
});

setAudioEffectMode10+

setAudioEffectMode(mode: AudioEffectMode): Promise<void>

Sets an audio effect mode. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
mode AudioEffectMode Yes Audio effect mode to set.

Return value

Type Description
Promise<void> Promise that returns no value.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error. Return by promise.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => {
  console.info('setAudioEffectMode SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioEffectMode10+

getAudioEffectMode(callback: AsyncCallback<AudioEffectMode>): void

Obtains the audio effect mode in use. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioEffectMode> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the audio effect mode obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioEffectMode((err: BusinessError, effectMode: audio.AudioEffectMode) => {
  if (err) {
    console.error('Failed to get params');
  } else {
    console.info(`getAudioEffectMode: ${effectMode}`);
  }
});

getAudioEffectMode10+

getAudioEffectMode(): Promise<AudioEffectMode>

Obtains the audio effect mode in use. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioEffectMode> Promise used to return the audio effect mode.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioEffectMode().then((effectMode: audio.AudioEffectMode) => {
  console.info(`getAudioEffectMode: ${effectMode}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

start8+

start(callback: AsyncCallback<void>): void

Starts the renderer. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.start((err: BusinessError) => {
  if (err) {
    console.error('Renderer start failed.');
  } else {
    console.info('Renderer start success.');
  }
});

start8+

start(): Promise<void>

Starts the renderer. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.start().then(() => {
  console.info('Renderer started');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

pause8+

pause(callback: AsyncCallback<void>): void

Pauses rendering. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.pause((err: BusinessError) => {
  if (err) {
    console.error('Renderer pause failed');
  } else {
    console.info('Renderer paused.');
  }
});

pause8+

pause(): Promise<void>

Pauses rendering. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.pause().then(() => {
  console.info('Renderer paused');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

drain8+

drain(callback: AsyncCallback<void>): void

Drains the playback buffer. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.drain((err: BusinessError) => {
  if (err) {
    console.error('Renderer drain failed');
  } else {
    console.info('Renderer drained.');
  }
});

drain8+

drain(): Promise<void>

Drains the playback buffer. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.drain().then(() => {
  console.info('Renderer drained successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

flush11+

flush(): Promise<void>

Flushes the buffer. This API is available when AudioState is STATE_RUNNING, STATE_PAUSED, or STATE_STOPPED. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800103 Operation not permit at current state. Return by promise.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.flush().then(() => {
  console.info('Renderer flushed successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

stop8+

stop(callback: AsyncCallback<void>): void

Stops rendering. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.stop((err: BusinessError) => {
  if (err) {
    console.error('Renderer stop failed');
  } else {
    console.info('Renderer stopped.');
  }
});

stop8+

stop(): Promise<void>

Stops rendering. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.stop().then(() => {
  console.info('Renderer stopped successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

release8+

release(callback: AsyncCallback<void>): void

Releases the renderer. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.release((err: BusinessError) => {
  if (err) {
    console.error('Renderer release failed');
  } else {
    console.info('Renderer released.');
  }
});

release8+

release(): Promise<void>

Releases the renderer. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.release().then(() => {
  console.info('Renderer released successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

write8+(deprecated)

write(buffer: ArrayBuffer, callback: AsyncCallback<number>): void

Writes the buffer. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use on('writeData') in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
buffer ArrayBuffer Yes Buffer to be written.
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the number of bytes written; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';

let bufferSize: number;
class Options {
  offset?: number;
  length?: number;
}
audioRenderer.getBufferSize().then((data: number)=> {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  console.info(`Buffer size: ${bufferSize}`);
  let path = getContext().cacheDir;
  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  fs.stat(filePath).then(async (stat: fs.Stat) => {
    let buf = new ArrayBuffer(bufferSize);
    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
    for (let i = 0;i < len; i++) {
      let options: Options = {
        offset: i * bufferSize,
        length: bufferSize
      }
      let readsize: number = await fs.read(file.fd, buf, options)
      let writeSize: number = await new Promise((resolve,reject)=>{
        audioRenderer.write(buf,(err: BusinessError, writeSize: number)=>{
          if(err){
            reject(err)
          }else{
            resolve(writeSize)
          }
        })
      })
    }
  });
  }).catch((err: BusinessError) => {
    console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});


write8+(deprecated)

write(buffer: ArrayBuffer): Promise<number>

Writes the buffer. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use on('writeData') in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
buffer ArrayBuffer Yes Buffer to be written.

Return value

Type Description
Promise<number> Promise used to return the number of written bytes.

Example

import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';

let bufferSize: number;
class Options {
  offset?: number;
  length?: number;
}
audioRenderer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  console.info(`BufferSize: ${bufferSize}`);
  let path = getContext().cacheDir;
  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  fs.stat(filePath).then(async (stat: fs.Stat) => {
    let buf = new ArrayBuffer(bufferSize);
    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
    for (let i = 0;i < len; i++) {
      let options: Options = {
        offset: i * bufferSize,
        length: bufferSize
      }
      let readsize: number = await fs.read(file.fd, buf, options)
      try{
        let writeSize: number = await audioRenderer.write(buf);
      } catch(err) {
        let error = err as BusinessError;
        console.error(`audioRenderer.write err: ${error}`);
      }
    }
  });
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the number of nanoseconds obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioTime((err: BusinessError, timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
});

getAudioTime8+

getAudioTime(): Promise<number>

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the timestamp.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getAudioTime().then((timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioTimeSync10+

getAudioTimeSync(): number

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Timestamp.

Example

import { BusinessError } from '@ohos.base';

try {
  let timestamp: number = audioRenderer.getAudioTimeSync();
  console.info(`Current timestamp: ${timestamp}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

Obtains a reasonable minimum buffer size in bytes for rendering. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the minimum buffer size obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number;
audioRenderer.getBufferSize((err: BusinessError, data: number) => {
  if (err) {
    console.error('getBufferSize error');
  } else {
    console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
    bufferSize = data;
  }
});

getBufferSize8+

getBufferSize(): Promise<number>

Obtains a reasonable minimum buffer size in bytes for rendering. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the buffer size.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number;
audioRenderer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});

getBufferSizeSync10+

getBufferSizeSync(): number

Obtains a reasonable minimum buffer size in bytes for rendering. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Buffer size.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number = 0;
try {
  bufferSize = audioRenderer.getBufferSizeSync();
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${bufferSize}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${error}`);
}

setRenderRate8+(deprecated)

setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void>): void

Sets the render rate. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use setSpeed in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
rate AudioRendererRate Yes Audio render rate.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err: BusinessError) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful render rate setting.');
  }
});

setRenderRate8+(deprecated)

setRenderRate(rate: AudioRendererRate): Promise<void>

Sets the render rate. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use setSpeed in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
rate AudioRendererRate Yes Audio render rate.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
  console.info('setRenderRate SUCCESS');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

setSpeed11+

setSpeed(speed: number): void

Sets the playback speed.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
speed number Yes Playback speed, which ranges from 0.25 to 4.0.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioRenderer.setSpeed(1.5);

getRenderRate8+(deprecated)

getRenderRate(callback: AsyncCallback<AudioRendererRate>): void

Obtains the current render rate. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use getSpeed in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioRendererRate> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the render rate obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getRenderRate((err: BusinessError, renderRate: audio.AudioRendererRate) => {
  console.info(`getRenderRate: ${renderRate}`);
});

getRenderRate8+(deprecated)

getRenderRate(): Promise<AudioRendererRate>

Obtains the current render rate. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use getSpeed in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<AudioRendererRate> Promise used to return the render rate.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getRenderRate().then((renderRate: audio.AudioRendererRate) => {
  console.info(`getRenderRate: ${renderRate}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getRenderRateSync10+(deprecated)

getRenderRateSync(): AudioRendererRate

Obtains the current render rate. This API returns the result synchronously.

NOTE

This API is supported since API version 10 and deprecated since API version 11. You are advised to use getSpeed in AudioRenderer.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
AudioRendererRate Audio render rate.

Example

import { BusinessError } from '@ohos.base';

try {
  let renderRate: audio.AudioRendererRate = audioRenderer.getRenderRateSync();
  console.info(`getRenderRate: ${renderRate}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

getSpeed11+

getSpeed(): number

Obtains the playback speed.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Playback speed.

Example

let speed = audioRenderer.getSpeed();

setInterruptMode9+

setInterruptMode(mode: InterruptMode): Promise<void>

Sets the audio interruption mode for the application. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
mode InterruptMode Yes Audio interruption mode.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

let mode = 0;
audioRenderer.setInterruptMode(mode).then(() => {
  console.info('setInterruptMode Success!');
}).catch((err: BusinessError) => {
  console.error(`setInterruptMode Fail: ${err}`);
});

setInterruptMode9+

setInterruptMode(mode: InterruptMode, callback: AsyncCallback<void>): void

Sets the audio interruption mode for the application. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
mode InterruptMode Yes Audio interruption mode.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

let mode = 1;
audioRenderer.setInterruptMode(mode, (err: BusinessError) => {
  if(err){
    console.error(`setInterruptMode Fail: ${err}`);
  }
  console.info('setInterruptMode Success!');
});

setInterruptModeSync10+

setInterruptModeSync(mode: InterruptMode): void

Sets the audio interruption mode for the application. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
mode InterruptMode Yes Audio interruption mode.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 invalid parameter error

Example

import { BusinessError } from '@ohos.base';

try {
  audioRenderer.setInterruptModeSync(0);
  console.info('setInterruptMode Success!');
} catch (err) {
  let error = err as BusinessError;
  console.error(`setInterruptMode Fail: ${error}`);
}

setVolume9+

setVolume(volume: number): Promise<void>

Sets the volume for the application. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volume number Yes Volume to set, which can be within the range from 0.0 to 1.0.

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setVolume(0.5).then(() => {
  console.info('setVolume Success!');
}).catch((err: BusinessError) => {
  console.error(`setVolume Fail: ${err}`);
});

setVolume9+

setVolume(volume: number, callback: AsyncCallback<void>): void

Sets the volume for the application. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volume number Yes Volume to set, which can be within the range from 0.0 to 1.0.
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.setVolume(0.5, (err: BusinessError) => {
  if(err){
    console.error(`setVolume Fail: ${err}`);
    return;
  }
  console.info('setVolume Success!');
});

getMinStreamVolume10+

getMinStreamVolume(callback: AsyncCallback<number>): void

Obtains the minimum volume of the application from the perspective of an audio stream. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the minimum volume (range: 0-1) obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getMinStreamVolume((err: BusinessError, minVolume: number) => {
  if (err) {
    console.error(`getMinStreamVolume error: ${err}`);
  } else {
    console.info(`getMinStreamVolume Success! ${minVolume}`);
  }
});

getMinStreamVolume10+

getMinStreamVolume(): Promise<number>

Obtains the minimum volume of the application from the perspective of an audio stream. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the minimum volume, ranging from 0 to 1.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getMinStreamVolume().then((value: number) => {
  console.info(`Get min stream volume Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get min stream volume Fail: ${err}`);
});

getMinStreamVolumeSync10+

getMinStreamVolumeSync(): number

Obtains the minimum volume of the application from the perspective of an audio stream. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Minimum volume, ranging from 0 to 1.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioRenderer.getMinStreamVolumeSync();
  console.info(`Get min stream volume Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get min stream volume Fail: ${error}`);
}

getMaxStreamVolume10+

getMaxStreamVolume(callback: AsyncCallback<number>): void

Obtains the maximum volume of the application from the perspective of an audio stream. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the maximum volume (range: 0-1) obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getMaxStreamVolume((err: BusinessError, maxVolume: number) => {
  if (err) {
    console.error(`getMaxStreamVolume Fail: ${err}`);
  } else {
    console.info(`getMaxStreamVolume Success! ${maxVolume}`);
  }
});

getMaxStreamVolume10+

getMaxStreamVolume(): Promise<number>

Obtains the maximum volume of the application from the perspective of an audio stream. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the maximum volume, ranging from 0 to 1.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getMaxStreamVolume().then((value: number) => {
  console.info(`Get max stream volume Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get max stream volume Fail: ${err}`);
});

getMaxStreamVolumeSync10+

getMaxStreamVolumeSync(): number

Obtains the maximum volume of the application from the perspective of an audio stream. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Maximum volume, ranging from 0 to 1.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioRenderer.getMaxStreamVolumeSync();
  console.info(`Get max stream volume Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get max stream volume Fail: ${error}`);
}

getUnderflowCount10+

getUnderflowCount(callback: AsyncCallback<number>): void

Obtains the number of underflow audio frames in the audio stream that is being played. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the number of underloaded audio frames obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getUnderflowCount((err: BusinessError, underflowCount: number) => {
  if (err) {
    console.error(`getUnderflowCount Fail: ${err}`);
  } else {
    console.info(`getUnderflowCount Success! ${underflowCount}`);
  }
});

getUnderflowCount10+

getUnderflowCount(): Promise<number>

Obtains the number of underflow audio frames in the audio stream that is being played. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
Promise<number> Promise used to return the number of underflow audio frames.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getUnderflowCount().then((value: number) => {
  console.info(`Get underflow count Success! ${value}`);
}).catch((err: BusinessError) => {
  console.error(`Get underflow count Fail: ${err}`);
});

getUnderflowCountSync10+

getUnderflowCountSync(): number

Obtains the number of underflow audio frames in the audio stream that is being played. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Return value

Type Description
number Number of underflow audio frames.

Example

import { BusinessError } from '@ohos.base';

try {
  let value: number = audioRenderer.getUnderflowCountSync();
  console.info(`Get underflow count Success! ${value}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get underflow count Fail: ${error}`);
}

getCurrentOutputDevices10+

getCurrentOutputDevices(callback: AsyncCallback<AudioDeviceDescriptors>): void

Obtains the output device descriptors of the audio streams. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioDeviceDescriptors> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the output device descriptors obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getCurrentOutputDevices((err: BusinessError, deviceInfo: audio.AudioDeviceDescriptors) => {
  if (err) {
    console.error(`getCurrentOutputDevices Fail: ${err}`);
  } else {
    for (let i = 0; i < deviceInfo.length; i++) {
      console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
      console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
      console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
      console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
      console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
      console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
      console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
      console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
    }
  }
});

getCurrentOutputDevices10+

getCurrentOutputDevices(): Promise<AudioDeviceDescriptors>

Obtains the output device descriptors of the audio streams. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
Promise<AudioDeviceDescriptors> Promise used to return the output device descriptors.

Example

import { BusinessError } from '@ohos.base';

audioRenderer.getCurrentOutputDevices().then((deviceInfo: audio.AudioDeviceDescriptors) => {
  for (let i = 0; i < deviceInfo.length; i++) {
    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
  }
}).catch((err: BusinessError) => {
  console.error(`Get current output devices Fail: ${err}`);
});

getCurrentOutputDevicesSync10+

getCurrentOutputDevicesSync(): AudioDeviceDescriptors

Obtains the output device descriptors of the audio streams. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
AudioDeviceDescriptors Output device descriptors.

Example

import { BusinessError } from '@ohos.base';

try {
  let deviceInfo: audio.AudioDeviceDescriptors = audioRenderer.getCurrentOutputDevicesSync();
  for (let i = 0; i < deviceInfo.length; i++) {
    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
  }
} catch (err) {
  let error = err as BusinessError;
  console.error(`Get current output devices Fail: ${error}`);
}

setChannelBlendMode11+

setChannelBlendMode(mode: ChannelBlendMode): void

Sets the audio channel blending mode. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
mode ChannelBlendMode Yes Audio channel blending mode.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.
6800103 Operation not permit at current state.

Example

let mode = audio.ChannelBlendMode.MODE_DEFAULT;

audioRenderer.setChannelBlendMode(mode);
console.info(`BlendMode: ${mode}`);

setVolumeWithRamp11+

setVolumeWithRamp(volume: number, duration: number): void

Sets a volume ramp. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
volume number Yes Target volume, within the range [0.0, 1.0].
duration number Yes Time range during which the ramp applies, in ms.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.
401 Input parameter type or number mismatch.

Example

let volume = 0.5;
let duration = 1000;

audioRenderer.setVolumeWithRamp(volume, duration);
console.info(`setVolumeWithRamp: ${volume}`);

on('audioInterrupt')9+

on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void

Subscribes to audio interruption events. This API uses an asynchronous callback to return the result.

Same as on('interrupt'), this API is used to listen for focus changes. The AudioRenderer instance proactively gains the focus when the start event occurs and releases the focus when the pause or stop event occurs. Therefore, you do not need to request to gain or release the focus.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioInterrupt' is triggered when audio rendering is interrupted.
callback Callback<InterruptEvent> Yes Callback used to return the audio interruption event received by the application when playback is interrupted.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import audio from '@ohos.multimedia.audio';

let isPlaying: boolean; // An identifier specifying whether rendering is in progress.
let isDucked: boolean; // An identifier specifying whether the audio volume is reduced.
onAudioInterrupt();

async function onAudioInterrupt(){
  audioRenderer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
      // The system forcibly interrupts audio rendering. The application must update the status and displayed content accordingly.
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // The audio stream has been paused and temporarily loses the focus. It will receive the interruptEvent corresponding to resume when it is able to regain the focus.
          console.info('Force paused. Update playing status and stop writing');
          isPlaying = false; // A simplified processing indicating several operations for switching the application to the paused state.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // The audio stream has been stopped and permanently loses the focus. The user must manually trigger the operation to resume rendering.
          console.info('Force stopped. Update playing status and stop writing');
          isPlaying = false; // A simplified processing indicating several operations for switching the application to the paused state.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
          // The audio stream is rendered at a reduced volume.
          console.info('Force ducked. Update volume status');
          isDucked = true; // A simplified processing indicating several operations for updating the volume status.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
          // The audio stream is rendered at the normal volume.
          console.info('Force ducked. Update volume status');
          isDucked = false; // A simplified processing indicating several operations for updating the volume status.
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
      // The application can choose to take action or ignore.
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
          // It is recommended that the application continue rendering. (The audio stream has been forcibly paused and temporarily lost the focus. It can resume rendering now.)
          console.info('Resume force paused renderer or ignore');
          // To continue rendering, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // It is recommended that the application pause rendering.
          console.info('Choose to pause or ignore');
          // To pause rendering, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // It is recommended that the application stop rendering.
          console.info('Choose to stop or ignore');
          // To stop rendering, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
          // It is recommended that the application reduce the volume for rendering.
          console.info('Choose to duck or ignore');
          // To decrease the volume for rendering, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
          // It is recommended that the application resume rendering at the normal volume.
          console.info('Choose to unduck or ignore');
          // To resume rendering at the normal volume, the application must perform the required operations.
          break;
        default:
          break;
      }
    }
  });
}

on('markReach')8+

on(type: 'markReach', frame: number, callback: Callback<number>): void

Subscribes to mark reached events. When the number of frames rendered reaches the value of the frame parameter, a callback is invoked. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'markReach'.
frame number Yes Number of frames to trigger the event. The value must be greater than 0.
callback Callback<number> Yes Callback used to return the value of the frame parameter.

Example

audioRenderer.on('markReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('markReach') 8+

off(type: 'markReach'): void

Unsubscribes from mark reached events.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'markReach'.

Example

audioRenderer.off('markReach');

on('periodReach') 8+

on(type: 'periodReach', frame: number, callback: Callback<number>): void

Subscribes to period reached events. When the number of frames rendered reaches the value of the frame parameter, a callback is triggered and the specified value is returned. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'periodReach'.
frame number Yes Number of frames to trigger the event. The value must be greater than 0.
callback Callback<number> Yes Callback used to return the value of the frame parameter.

Example

audioRenderer.on('periodReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('periodReach') 8+

off(type: 'periodReach'): void

Unsubscribes from period reached events.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'periodReach'.

Example

audioRenderer.off('periodReach');

on('stateChange')8+

on(type: 'stateChange', callback: Callback<AudioState>): void

Subscribes to state change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value stateChange means the state change event.
callback Callback<AudioState> Yes Callback used to return the audio status.

Example

audioRenderer.on('stateChange', (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio renderer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio renderer state is: STATE_RUNNING');
  }
});

on('outputDeviceChange') 10+

on(type: 'outputDeviceChange', callback: Callback<AudioDeviceDescriptors>): void

Subscribes to audio output device change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'outputDeviceChange' is triggered when the audio output device is changed.
callback Callback<AudioDeviceDescriptors> Yes Callback used to return the output device descriptor of the current audio stream.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioRenderer.on('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => {
  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
});

off('outputDeviceChange') 10+

off(type: 'outputDeviceChange', callback?: Callback<AudioDeviceDescriptors>): void

Unsubscribes from audio output device change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'outputDeviceChange' is triggered when the audio output device is changed.
callback Callback<AudioDeviceDescriptors> No Callback used to return the output device descriptor of the current audio stream.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioRenderer.off('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => {
  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
});

on('outputDeviceChangeWithInfo') 11+

on(type: 'outputDeviceChangeWithInfo', callback: Callback<AudioStreamDeviceChangeInfo>): void

Subscribes to audio stream output device changes and reasons. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'outputDeviceChangeWithInfo' is triggered when the output device is changed.
callback Callback<AudioStreamDeviceChangeInfo> Yes Callback used to return the output device descriptor of the current audio stream and the change reason.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 if input parameter value error.

Example

audioRenderer.on('outputDeviceChangeWithInfo', (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => {
  console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`);
  console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`);
  console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`);
  console.info(`Device change reason: ${deviceChangeInfo.changeReason}`);
});

off('outputDeviceChangeWithInfo') 11+

off(type: 'outputDeviceChangeWithInfo', callback?: Callback<AudioStreamDeviceChangeInfo>): void

Unsubscribes from audio stream output device changes and reasons. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'outputDeviceChangeWithInfo' is triggered when the output device is changed.
callback Callback<AudioStreamDeviceChangeInfo> No Callback used to return the output device descriptor of the current audio stream and the change reason.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 if input parameter value error.

Example

audioRenderer.off('outputDeviceChangeWithInfo', (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => {
  console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`);
  console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`);
  console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`);
  console.info(`Device change reason: ${deviceChangeInfo.changeReason}`);
});

on('writeData')11+

on(type: 'writeData', callback: Callback<ArrayBuffer>): void

Subscribes to audio data write events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'writeData' is triggered when audio data is written.
callback Callback<ArrayBuffer> Yes Callback used to return the result.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';

let bufferSize: number = 0;
class Options {
  offset?: number;
  length?: number;
}

let writeDataCallback = (buffer: ArrayBuffer) => {
  let path = getContext().cacheDir;
  // Ensure that the resource exists in the path.
  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  let options: Options = {
    offset: bufferSize,
    length: buffer.byteLength
  }
  fs.readSync(file.fd, buffer, options);
  bufferSize += buffer.byteLength;
}

audioRenderer.on('writeData', writeDataCallback);
audioRenderer.start().then(() => {
  console.info('Renderer started');
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

off('writeData')11+

off(type: 'writeData', callback?: Callback<ArrayBuffer>): void

Unsubscribes from audio data write events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Renderer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'writeData' is triggered when audio data is written.
callback Callback<ArrayBuffer> No Callback used to return the result.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioRenderer.off('writeData', (data: ArrayBuffer) => {
    console.info(`write data: ${data}`);
});

AudioCapturer8+

Provides APIs for audio capture. Before calling any API in AudioCapturer, you must use createAudioCapturer to create an AudioCapturer instance.

Attributes

System capability: SystemCapability.Multimedia.Audio.Capturer

Name Type Readable Writable Description
state8+ AudioState Yes No Audio capturer state.

Example

import audio from '@ohos.multimedia.audio';

let state: audio.AudioState = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void

Obtains the capturer information of this AudioCapturer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioCapturerInfo> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the capturer information obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getCapturerInfo((err: BusinessError, capturerInfo: audio.AudioCapturerInfo) => {
  if (err) {
    console.error('Failed to get capture info');
  } else {
    console.info('Capturer getCapturerInfo:');
    console.info(`Capturer source: ${capturerInfo.source}`);
    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
  }
});

getCapturerInfo8+

getCapturerInfo(): Promise<AudioCapturerInfo>

Obtains the capturer information of this AudioCapturer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<AudioCapturerInfo> Promise used to return capturer information.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getCapturerInfo().then((audioParamsGet: audio.AudioCapturerInfo) => {
  if (audioParamsGet != undefined) {
    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
  } else {
    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
})

getCapturerInfoSync10+

getCapturerInfoSync(): AudioCapturerInfo

Obtains the capturer information of this AudioCapturer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
AudioCapturerInfo Capturer information.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioParamsGet: audio.AudioCapturerInfo = audioCapturer.getCapturerInfoSync();
  console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
  console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${error}`);
}

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

Obtains the stream information of this AudioCapturer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<AudioStreamInfo> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream information obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
  if (err) {
    console.error('Failed to get stream info');
  } else {
    console.info('Capturer GetStreamInfo:');
    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
    console.info(`Capturer channel: ${streamInfo.channels}`);
    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
  }
});

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

Obtains the stream information of this AudioCapturer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<AudioStreamInfo> Promise used to return the stream information.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getStreamInfo().then((audioParamsGet: audio.AudioStreamInfo) => {
  console.info('getStreamInfo:');
  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  console.info(`channels: ${audioParamsGet.channels}`);
  console.info(`encodingType: ${audioParamsGet.encodingType}`);
}).catch((err: BusinessError) => {
  console.error(`getStreamInfo :ERROR: ${err}`);
});

getStreamInfoSync10+

getStreamInfoSync(): AudioStreamInfo

Obtains the stream information of this AudioCapturer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
AudioStreamInfo Stream information.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioParamsGet: audio.AudioStreamInfo = audioCapturer.getStreamInfoSync();
  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  console.info(`channels: ${audioParamsGet.channels}`);
  console.info(`encodingType: ${audioParamsGet.encodingType}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`getStreamInfo :ERROR: ${error}`);
}

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

Obtains the stream ID of this AudioCapturer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the stream ID obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getAudioStreamId((err: BusinessError, streamId: number) => {
  console.info(`audioCapturer GetStreamId: ${streamId}`);
});

getAudioStreamId9+

getAudioStreamId(): Promise<number>

Obtains the stream ID of this AudioCapturer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<number> Promise used to return the stream ID.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getAudioStreamId().then((streamId: number) => {
  console.info(`audioCapturer getAudioStreamId: ${streamId}`);
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

getAudioStreamIdSync10+

getAudioStreamIdSync(): number

Obtains the stream ID of this AudioCapturer instance. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
number Stream ID.

Example

import { BusinessError } from '@ohos.base';

try {
  let streamId: number = audioCapturer.getAudioStreamIdSync();
  console.info(`audioCapturer getAudioStreamIdSync: ${streamId}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`ERROR: ${error}`);
}

start8+

start(callback: AsyncCallback<void>): void

Starts capturing. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.start((err: BusinessError) => {
  if (err) {
    console.error('Capturer start failed.');
  } else {
    console.info('Capturer start success.');
  }
});

start8+

start(): Promise<void>

Starts capturing. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.start().then(() => {
  console.info('AudioFrameworkRecLog: ---------START---------');
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
});

stop8+

stop(callback: AsyncCallback<void>): void

Stops capturing. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the vibration stops, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.stop((err: BusinessError) => {
  if (err) {
    console.error('Capturer stop failed');
  } else {
    console.info('Capturer stopped.');
  }
});

stop8+

stop(): Promise<void>

Stops capturing. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.stop().then(() => {
  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
    console.info('AudioFrameworkRecLog: State is Stopped:');
  }
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});

release8+

release(callback: AsyncCallback<void>): void

Releases this AudioCapturer instance. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to return the result. If the operation is successful, err is undefined; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.release((err: BusinessError) => {
  if (err) {
    console.error('capturer release failed');
  } else {
    console.info('capturer released.');
  }
});

release8+

release(): Promise<void>

Releases this AudioCapturer instance. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<void> Promise that returns no value.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.release().then(() => {
  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});

read8+(deprecated)

read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer>): void

Reads the buffer. This API uses an asynchronous callback to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use on('readData') in AudioCapturer.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
size number Yes Number of bytes to read.
isBlockingRead boolean Yes Whether to block the read operation. The value true means to block the read operation, and false means the opposite.
callback AsyncCallback<ArrayBuffer> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the buffer read; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number = 0;
audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
});
audioCapturer.read(bufferSize, true, (err: BusinessError, buffer: ArrayBuffer) => {
  if (!err) {
    console.info('Success in reading the buffer data');
  }
});

read8+(deprecated)

read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer>

Reads the buffer. This API uses a promise to return the result.

NOTE

This API is supported since API version 8 and deprecated since API version 11. You are advised to use on('readData') in AudioCapturer.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
size number Yes Number of bytes to read.
isBlockingRead boolean Yes Whether to block the read operation. The value true means to block the read operation, and false means the opposite.

Return value

Type Description
Promise<ArrayBuffer> Promise used to return the data read from the buffer.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number = 0;
audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
});
console.info(`Buffer size: ${bufferSize}`);
audioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => {
  console.info('buffer read successfully');
}).catch((err: BusinessError) => {
  console.error(`ERROR : ${err}`);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the number of nanoseconds obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getAudioTime((err: BusinessError, timestamp: number) => {
  console.info(`Current timestamp: ${timestamp}`);
});

getAudioTime8+

getAudioTime(): Promise<number>

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<number> Promise used to return the number of nanoseconds elapsed from the Unix epoch.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getAudioTime().then((audioTime: number) => {
  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
});

getAudioTimeSync10+

getAudioTimeSync(): number

Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
number Timestamp.

Example

import { BusinessError } from '@ohos.base';

try {
  let audioTime: number = audioCapturer.getAudioTimeSync();
  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : Success ${audioTime}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : ERROR : ${error}`);
}

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

Obtains a reasonable minimum buffer size in bytes for capturing. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to return the result. If the operation is successful, err is undefined and data is the minimum buffer size obtained; otherwise, err is an error object.

Example

import { BusinessError } from '@ohos.base';

audioCapturer.getBufferSize((err: BusinessError, bufferSize: number) => {
  if (!err) {
    console.info(`BufferSize : ${bufferSize}`);
    audioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => {
      console.info(`Buffer read is ${buffer.byteLength}`);
    }).catch((err: BusinessError) => {
      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
    });
  }
});

getBufferSize8+

getBufferSize(): Promise<number>

Obtains a reasonable minimum buffer size in bytes for capturing. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
Promise<number> Promise used to return the buffer size.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number = 0;
audioCapturer.getBufferSize().then((data: number) => {
  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
  bufferSize = data;
}).catch((err: BusinessError) => {
  console.error(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
});

getBufferSizeSync10+

getBufferSizeSync(): number

Obtains a reasonable minimum buffer size in bytes for capturing. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

Type Description
number Buffer size.

Example

import { BusinessError } from '@ohos.base';

let bufferSize: number = 0;
try {
  bufferSize = audioCapturer.getBufferSizeSync();
  console.info(`AudioFrameworkRecLog: getBufferSizeSync :SUCCESS ${bufferSize}`);
} catch (err) {
  let error = err as BusinessError;
  console.error(`AudioFrameworkRecLog: getBufferSizeSync :ERROR : ${error}`);
}

getCurrentInputDevices11+

getCurrentInputDevices(): AudioDeviceDescriptors

Obtains the descriptors of the current input devices. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
AudioDeviceDescriptors An array of the audio device descriptors.

Example

let deviceDescriptors: audio.AudioDeviceDescriptors = audioCapturer.getCurrentInputDevices();
console.info(`Device id: ${deviceDescriptors[0].id}`);
console.info(`Device type: ${deviceDescriptors[0].deviceType}`);
console.info(`Device role: ${deviceDescriptors[0].deviceRole}`);
console.info(`Device name: ${deviceDescriptors[0].name}`);
console.info(`Device address: ${deviceDescriptors[0].address}`);
console.info(`Device samplerates: ${deviceDescriptors[0].sampleRates[0]}`);
console.info(`Device channelcounts: ${deviceDescriptors[0].channelCounts[0]}`);
console.info(`Device channelmask: ${deviceDescriptors[0].channelMasks[0]}`);
if (deviceDescriptors[0].encodingTypes) {
  console.info(`Device encodingTypes: ${deviceDescriptors[0].encodingTypes[0]}`);
}

getCurrentAudioCapturerChangeInfo11+

getCurrentAudioCapturerChangeInfo(): AudioCapturerChangeInfo

Obtains the configuration changes of the current audio capturer. This API returns the result synchronously.

System capability: SystemCapability.Multimedia.Audio.Device

Return value

Type Description
AudioCapturerChangeInfo Configuration changes of the audio capturer.

Example

let info: audio.AudioCapturerChangeInfo = audioCapturer.getCurrentAudioCapturerChangeInfo();
console.info(`Info streamId: ${info.streamId}`);
console.info(`Info source: ${info.capturerInfo.source}`);
console.info(`Info capturerFlags: ${info.capturerInfo.capturerFlags}`);
console.info(`Info muted: ${info.muted}`);
console.info(`Info type: ${info.deviceDescriptors[0].deviceType}`);
console.info(`Info role: ${info.deviceDescriptors[0].deviceRole}`);
console.info(`Info name: ${info.deviceDescriptors[0].name}`);
console.info(`Info address: ${info.deviceDescriptors[0].address}`);
console.info(`Info samplerates: ${info.deviceDescriptors[0].sampleRates[0]}`);
console.info(`Info channelcounts: ${info.deviceDescriptors[0].channelCounts[0]}`);
console.info(`Info channelmask: ${info.deviceDescriptors[0].channelMasks[0]}`);
if (info.deviceDescriptors[0].encodingTypes) {
  console.info(`Device encodingTypes: ${info.deviceDescriptors[0].encodingTypes[0]}`);
}

on('audioInterrupt')10+

on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void

Subscribes to audio interruption events. This API uses an asynchronous callback to return the result.

Same as on('interrupt'), this API is used to listen for focus changes. The AudioCapturer instance proactively gains the focus when the start event occurs and releases the focus when the pause or stop event occurs. Therefore, you do not need to request to gain or release the focus.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioInterrupt' is triggered when audio capture is interrupted.
callback Callback<InterruptEvent> Yes Callback used to return the audio interruption event received by the application when playback is interrupted.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

import audio from '@ohos.multimedia.audio';

let isCapturing: boolean; // An identifier specifying whether capturing is in progress.
onAudioInterrupt();

async function onAudioInterrupt(){
  audioCapturer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
      // The system forcibly interrupts audio capture. The application must update the status and displayed content accordingly.
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // The audio stream has been paused and temporarily loses the focus. It will receive the interruptEvent corresponding to resume when it is able to regain the focus.
          console.info('Force paused. Update capturing status and stop reading');
          isCapturing = false; // A simplified processing indicating several operations for switching the application to the paused state.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // The audio stream has been stopped and permanently loses the focus. The user must manually trigger the operation to resume capturing.
          console.info('Force stopped. Update capturing status and stop reading');
          isCapturing = false; // A simplified processing indicating several operations for switching the application to the paused state.
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
      // The application can choose to take action or ignore.
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
          // It is recommended that the application continue capturing. (The audio stream has been forcibly paused and temporarily lost the focus. It can resume capturing now.)
          console.info('Resume force paused renderer or ignore');
          // To continue capturing, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // It is recommended that the application pause capturing.
          console.info('Choose to pause or ignore');
          // To pause capturing, the application must perform the required operations.
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // It is recommended that the application stop capturing.
          console.info('Choose to stop or ignore');
          // To stop capturing, the application must perform the required operations.
          break;
        default:
          break;
      }
    }
  });
}

off('audioInterrupt')10+

off(type: 'audioInterrupt'): void

Unsubscribes from audio interruption events.

System capability: SystemCapability.Multimedia.Audio.Interrupt

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioInterrupt' is triggered when audio capture is interrupted.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Invalid parameter error.

Example

audioCapturer.off('audioInterrupt');

on('inputDeviceChange')11+

on(type: 'inputDeviceChange', callback: Callback<AudioDeviceDescriptors>): void

Subscribes to audio input device change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'inputDeviceChange' is triggered when the audio input device is changed.
callback Callback<AudioDeviceDescriptors> Yes Callback used to return the information about the new audio input device.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioCapturer.on('inputDeviceChange', (deviceChangeInfo: audio.AudioDeviceDescriptors) => {
  console.info(`inputDevice id: ${deviceChangeInfo[0].id}`);
  console.info(`inputDevice deviceRole: ${deviceChangeInfo[0].deviceRole}`);
  console.info(`inputDevice deviceType: ${deviceChangeInfo[0].deviceType}`);
});

off('inputDeviceChange')11+

off(type: 'inputDeviceChange', callback?: Callback<AudioDeviceDescriptors>): void

Unsubscribes from audio input device change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Device

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'inputDeviceChange' is triggered when the audio input device is changed.
callback Callback<AudioDeviceDescriptors> No Callback used to return the information about the audio input device.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioCapturer.off('inputDeviceChange');

on('audioCapturerChange')11+

on(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfo>): void

Subscribes to audio capturer configuration change events. This API uses an asynchronous callback to return the result. The subscription is implemented asynchronously and the callback, which is triggered when the audio capturer configuration changes, may fail to reflect the actual condition.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioCapturerChange' is triggered when the audio capturer configuration is changed.
callback Callback<AudioCapturerChangeInfo> Yes Callback used to return the current configuration and status information of the audio capturer.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioCapturer.on('audioCapturerChange', (capturerChangeInfo: audio.AudioCapturerChangeInfo) => {
  console.info(`audioCapturerChange id: ${capturerChangeInfo[0].id}`);
  console.info(`audioCapturerChange deviceRole: ${capturerChangeInfo[0].deviceRole}`);
  console.info(`audioCapturerChange deviceType: ${capturerChangeInfo[0].deviceType}`);
});

off('audioCapturerChange')11+

off(type: 'audioCapturerChange', callback?: Callback<AudioCapturerChangeInfo>): void

Unsubscribes from audio capturer configuration change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'audioCapturerChange' is triggered when the audio capturer configuration is changed.
callback Callback<AudioCapturerChangeInfo> No Callback used for unsubscription.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioCapturer.off('audioCapturerChange');

on('markReach')8+

on(type: 'markReach', frame: number, callback: Callback<number>): void

Subscribes to mark reached events. When the number of frames captured reaches the value of the frame parameter, a callback is invoked. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'markReach'.
frame number Yes Number of frames to trigger the event. The value must be greater than 0.
callback Callback<number> Yes Callback used to return the value of the frame parameter.

Example

audioCapturer.on('markReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('markReach')8+

off(type: 'markReach'): void

Unsubscribes from mark reached events.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'markReach'.

Example

audioCapturer.off('markReach');

on('periodReach')8+

on(type: 'periodReach', frame: number, callback: Callback<number>): void

Subscribes to period reached events. When the number of frames captured reaches the value of the frame parameter, a callback is triggered and the specified value is returned. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'periodReach'.
frame number Yes Number of frames to trigger the event. The value must be greater than 0.
callback Callback<number> Yes Callback used to return the value of the frame parameter.

Example

audioCapturer.on('periodReach', 1000, (position: number) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
  }
});

off('periodReach')8+

off(type: 'periodReach'): void

Unsubscribes from period reached events.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value is fixed at 'periodReach'.

Example

audioCapturer.off('periodReach');

on('stateChange')8+

on(type: 'stateChange', callback: Callback<AudioState>): void

Subscribes to state change events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The value stateChange means the state change event.
callback Callback<AudioState> Yes Callback used to return the audio status.

Example

audioCapturer.on('stateChange', (state: audio.AudioState) => {
  if (state == 1) {
    console.info('audio capturer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio capturer state is: STATE_RUNNING');
  }
});

on('readData')11+

on(type: 'readData', callback: Callback<ArrayBuffer>): void

Subscribes to audio data read events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'readData' is triggered when audio data is read.
callback Callback<ArrayBuffer> Yes Callback used to return the buffer from which the data is read.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

import { BusinessError } from '@ohos.base';
import fs from '@ohos.file.fs';

let bufferSize: number = 0;
class Options {
  offset?: number;
  length?: number;
}

let readDataCallback = (buffer: ArrayBuffer) => {
  let path = getContext().cacheDir;
  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
  let options: Options = {
    offset: bufferSize,
    length: buffer.byteLength
  }
  fs.writeSync(file.fd, buffer, options);
  bufferSize += buffer.byteLength;
}
audioCapturer.on('readData', readDataCallback);
audioCapturer.start((err: BusinessError) => {
  if (err) {
    console.error('Capturer start failed.');
  } else {
    console.info('Capturer start success.');
  }
});

off('readData')11+

off(type: 'readData', callback?: Callback<ArrayBuffer>): void

Unsubscribes from audio data read events. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

Name Type Mandatory Description
type string Yes Event type. The event 'readData' is triggered when audio data is read.
callback Callback<ArrayBuffer> No Callback used to return the buffer from which the data is read.

Error codes

For details about the error codes, see Audio Error Codes.

ID Error Message
6800101 Input parameter value error.

Example

audioCapturer.off('readData', (data: ArrayBuffer) => {
    console.info(`read data: ${data}`);
});

ActiveDeviceType(deprecated)

Enumerates the active device types.

NOTE

This API is deprecated since API version 9. You are advised to use CommunicationDeviceType instead.

System capability: SystemCapability.Multimedia.Audio.Device

Name Value Description
SPEAKER 2 Speaker.
BLUETOOTH_SCO 7 Bluetooth device using Synchronous Connection Oriented (SCO) links.

InterruptActionType(deprecated)

Enumerates the returned event types for audio interruption events.

NOTE

This API is supported since API version 7 and deprecated since API version 9. No substitute enum is provided. It is used together with the audio interruption events.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Value Description
TYPE_ACTIVATED 0 Focus gain event.
TYPE_INTERRUPT 1 Audio interruption event.

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 enum is provided. It is used together with the audio interruption events.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Type Mandatory Description
streamUsage StreamUsage Yes Audio stream usage.
contentType ContentType Yes Audio content type.
pauseWhenDucked boolean Yes Whether audio playback can be paused during audio interruption. The value true means that audio playback can be paused during audio interruption, and false means the opposite.

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.

System capability: SystemCapability.Multimedia.Audio.Renderer

Name Type Mandatory Description
actionType InterruptActionType Yes Returned event type. The value TYPE_ACTIVATED means the focus gain event, and TYPE_INTERRUPT means the audio interruption event.
type InterruptType No Type of the audio interruption event.
hint InterruptHint No Hint provided along with the audio interruption event.
activated boolean No 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.