openharmony 鸿蒙 arkts-apis-audio-AudioLoopback

2026-08-25 浏览 (1)

Interface (AudioLoopback)

This interface provides APIs for audio monitoring.

Before calling any API in AudioLoopback, you must use audio.createAudioLoopback to create an AudioLoopback instance.

When audio loopback is enabled, the system creates a low-latency renderer and capturer to implement low-latency in-ear monitoring. The audio captured is routed back to the renderer through an internal path. The renderer follows the audio focus strategy for STREAM_USAGE_MUSIC, whereas the capturer follows the strategy for SOURCE_TYPE_MIC.

The system automatically chooses the input and output devices. If these devices do not support low latency, audio loopback does not work. If another audio stream takes over the audio focus or if the input or output device changes to the one that does not support low latency, the system disables audio loopback automatically.

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.
  • The initial APIs of this interface are supported since API version 20.

Modules to Import

import { audio } from '@kit.AudioKit';

getStatus20+

getStatus(): Promise<AudioLoopbackStatus>

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

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

TypeDescription
Promise<AudioLoopbackStatus>Promise used to return the audio loopback status.

Example

import { BusinessError } from '@kit.BasicServicesKit';

audioLoopback.getStatus().then((status: audio.AudioLoopbackStatus) => {
  console.info(`AudioLoopback: Status: ${status}`);
}).catch((err: BusinessError) => {
  console.error(`AudioLoopback: Status :ERROR: ${err}`);
})

setVolume20+

setVolume(volume: number): Promise<void>

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

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

NameTypeMandatoryDescription
volumenumberYesVolume to set, which is in the range [0.0, 1.0].

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

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

IDError Message
6800101Parameter verification failed, form 0.0 to 1.0.

Example

import { BusinessError } from '@kit.BasicServicesKit';

audioLoopback.setVolume(0.5).then(() => {
  console.info('setVolume Success!');
}).catch((err: BusinessError) => {
  console.error(`setVolume Fail: ${err}`);
});

on('statusChange')20+

on(type: 'statusChange', callback: Callback<AudioLoopbackStatus>): void

Subscribes to the audio loopback status change event, which is triggered when the status of the audio loopback is changed. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The event 'statusChange' is triggered when the status of the audio loopback is changed.
callbackCallback<AudioLoopbackStatus>YesCallback used to return the audio loopback status.

Error codes

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

IDError Message
6800101Parameter verification failed.

Example

audioLoopback.on('statusChange', (status: audio.AudioLoopbackStatus) => {
  if (status == audio.AudioLoopbackStatus.UNAVAILABLE_DEVICE) {
    console.info('audio loopback status is: UNAVAILABLE_DEVICE');
  } else if (status == audio.AudioLoopbackStatus.UNAVAILABLE_SCENE) {
    console.info('audio loopback status is: UNAVAILABLE_SCENE');
  } else if (status == audio.AudioLoopbackStatus.AVAILABLE_IDLE) {
    console.info('audio loopback status is: AVAILABLE_IDLE');
  } else if (status == audio.AudioLoopbackStatus.AVAILABLE_RUNNING) {
    console.info('audio loopback status is: AVAILABLE_RUNNING');
  }
});

off('statusChange')20+

off(type: 'statusChange', callback?: Callback<AudioLoopbackStatus>): void

Unsubscribes from the audio loopback status event. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The event 'statusChange' is triggered when the status of the audio loopback is changed.
callbackCallback<AudioLoopbackStatus>NoCallback used to return the audio loopback status.

Error codes

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

IDError Message
6800101Parameter verification failed.

Example

// Cancel all subscriptions to the event.
audioLoopback.off('statusChange');

// For the same event, if the callback parameter passed to the off API is the same as that passed to the on API, the off API cancels the subscription registered with the specified callback parameter.
let statusChangeCallback = (status: audio.AudioLoopbackStatus) => {
  if (status == audio.AudioLoopbackStatus.UNAVAILABLE_DEVICE) {
    console.info('audio loopback status is: UNAVAILABLE_DEVICE');
  } else if (status == audio.AudioLoopbackStatus.UNAVAILABLE_SCENE) {
    console.info('audio loopback status is: UNAVAILABLE_SCENE');
  } else if (status == audio.AudioLoopbackStatus.AVAILABLE_IDLE) {
    console.info('audio loopback status is: AVAILABLE_IDLE');
  } else if (status == audio.AudioLoopbackStatus.AVAILABLE_RUNNING) {
    console.info('audio loopback status is: AVAILABLE_RUNNING');
  }
};

audioLoopback.on('statusChange', statusChangeCallback);

audioLoopback.off('statusChange', statusChangeCallback);

enable20+

enable(enable: boolean): Promise<boolean>

Enables or disables audio loopback. This API uses a promise to return the result.

System capability: SystemCapability.Multimedia.Audio.Capturer

Required permissions: ohos.permission.MICROPHONE

Parameters

NameTypeMandatoryDescription
enablebooleanYesWhether to enable or disable audio loopback. true to enable, false otherwise.

Return value

TypeDescription
Promise<boolean>Promise used to return the result, indicating whether the API call is successful. true is successful, false otherwise.

Error codes

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

IDError Message
201Permission denied.
6800101Parameter verification failed.

Example

import { BusinessError } from '@kit.BasicServicesKit';

audioLoopback.enable(true).then((isSuccess) => {
  if (isSuccess) {
    console.info('audio loopback enable success');
  } else {
    console.info('audio loopback enable fail');
  }
}).catch((err: BusinessError) => {
  console.error(`ERROR: ${err}`);
});

setReverbPreset21+

setReverbPreset(preset: AudioLoopbackReverbPreset): boolean

Sets the reverb mode for audio loopback.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

NameTypeMandatoryDescription
presetAudioLoopbackReverbPresetYesReverb mode.

Return value

TypeDescription
booleanSetting result. true if successful, false otherwise.

Error codes

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

IDError Message
6800101Parameter verification failed.

Example

import { BusinessError } from '@kit.BasicServicesKit';
try {
  audioLoopback.setReverbPreset(audio.AudioLoopbackReverbPreset.THEATER);
} catch (err) {
  console.error(`setReverbPreset :ERROR: ${err}`);
}

getReverbPreset21+

getReverbPreset(): AudioLoopbackReverbPreset

Obtains the reverb mode of audio loopback.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

TypeDescription
AudioLoopbackReverbPresetReverb mode.
If no reverb mode has been set, the default reverb mode is THEATER.

Example

import { BusinessError } from '@kit.BasicServicesKit';
try {
  let reverbPreset = audioLoopback.getReverbPreset();
} catch (err) {
  console.error(`getReverbPreset:ERROR: ${err}`);
}

setEqualizerPreset21+

setEqualizerPreset(preset: AudioLoopbackEqualizerPreset): boolean

Sets the equalizer type for audio loopback.

System capability: SystemCapability.Multimedia.Audio.Capturer

Parameters

NameTypeMandatoryDescription
presetAudioLoopbackEqualizerPresetYesEqualizer type.

Return value

TypeDescription
booleanSetting result. true if successful, false otherwise.

Error codes

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

IDError Message
6800101Parameter verification failed.

Example

import { BusinessError } from '@kit.BasicServicesKit';
try {
  audioLoopback.setEqualizerPreset(audio.AudioLoopbackEqualizerPreset.FULL);
} catch (err) {
  console.error(`setEqualizerPreset :ERROR: ${err}`);
}

getEqualizerPreset21+

getEqualizerPreset(): AudioLoopbackEqualizerPreset

Obtains the equalizer type of audio loopback.

System capability: SystemCapability.Multimedia.Audio.Capturer

Return value

TypeDescription
AudioLoopbackEqualizerPresetEqualizer type.
If no equalizer type has been set, the default equalizer type is FULL.

Example

import { BusinessError } from '@kit.BasicServicesKit';
try {
  let reverbPreset = audioLoopback.getEqualizerPreset();
} catch (err) {
  console.error(`getEqualizerPreset:ERROR: ${err}`);
}

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-native-audiostreambuilder-h

openharmony 鸿蒙 capi-ohaudiosuite

openharmony 鸿蒙 js-apis-inner-multimedia-systemSoundPlayer

openharmony 鸿蒙 arkts-apis-audio-i

openharmony 鸿蒙 capi-ohaudio

openharmony 鸿蒙 capi-ohmidi

openharmony 鸿蒙 arkts-apis-audio-AudioManager

openharmony 鸿蒙 capi-ohaudiosuite-oh-audiosuite-spacerenderpositionparams

openharmony 鸿蒙 capi-ohaudio-oh-audiostreaminfo

openharmony 鸿蒙 errorcode-ringtone

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/uvpAebso