音頻管理

2024-01-23 15:45 更新

音頻管理提供管理音頻的一些基礎(chǔ)能力,包括對音頻音量、音頻設(shè)備的管理,以及對音頻數(shù)據(jù)的采集和渲染等。

該模塊提供以下音頻相關(guān)的常用功能:

  • AudioManager:音頻管理。
  • AudioRenderer:音頻渲染,用于播放PCM(Pulse Code Modulation)音頻數(shù)據(jù)。
  • AudioCapturer:音頻采集,用于錄制PCM音頻數(shù)據(jù)。
說明

本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。

導(dǎo)入模塊

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

常量

名稱

類型

可讀

可寫

說明

DEFAULT_VOLUME_GROUP_ID9+

number

默認(rèn)音量組id。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

DEFAULT_INTERRUPT_GROUP_ID9+

number

默認(rèn)音頻中斷組id。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
  3. const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;

audio.getAudioManager

getAudioManager(): AudioManager

獲取音頻管理器。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

返回值:

類型

說明

AudioManager

音頻管理類。

示例:

  1. let audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

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

獲取音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

options

AudioRendererOptions

配置渲染器。

callback

AsyncCallback<AudioRenderer>

音頻渲染器對象。

示例:

  1. import featureAbility from '@ohos.ability.featureAbility';
  2. import fs from '@ohos.file.fs';
  3. import audio from '@ohos.multimedia.audio';
  4. let audioStreamInfo = {
  5. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  6. channels: audio.AudioChannel.CHANNEL_1,
  7. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  8. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  9. }
  10. let audioRendererInfo = {
  11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
  12. usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  13. rendererFlags: 0
  14. }
  15. let audioRendererOptions = {
  16. streamInfo: audioStreamInfo,
  17. rendererInfo: audioRendererInfo
  18. }
  19. audio.createAudioRenderer(audioRendererOptions,(err, data) => {
  20. if (err) {
  21. console.error(`AudioRenderer Created: Error: ${err}`);
  22. } else {
  23. console.info('AudioRenderer Created: Success: SUCCESS');
  24. let audioRenderer = data;
  25. }
  26. });

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>

獲取音頻渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

options

AudioRendererOptions

配置渲染器。

返回值:

類型

說明

Promise<AudioRenderer>

音頻渲染器對象。

示例:

  1. import featureAbility from '@ohos.ability.featureAbility';
  2. import fs from '@ohos.file.fs';
  3. import audio from '@ohos.multimedia.audio';
  4. let audioStreamInfo = {
  5. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  6. channels: audio.AudioChannel.CHANNEL_1,
  7. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  8. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  9. }
  10. let audioRendererInfo = {
  11. content: audio.ContentType.CONTENT_TYPE_SPEECH,
  12. usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
  13. rendererFlags: 0
  14. }
  15. let audioRendererOptions = {
  16. streamInfo: audioStreamInfo,
  17. rendererInfo: audioRendererInfo
  18. }
  19. let audioRenderer;
  20. audio.createAudioRenderer(audioRendererOptions).then((data) => {
  21. audioRenderer = data;
  22. console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
  23. }).catch((err) => {
  24. console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
  25. });

audio.createAudioCapturer8+

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

獲取音頻采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

需要權(quán)限: ohos.permission.MICROPHONE

參數(shù):

參數(shù)名

類型

必填

說明

options

AudioCapturerOptions

配置音頻采集器。

callback

AsyncCallback<AudioCapturer>

音頻采集器對象。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. let audioStreamInfo = {
  3. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  4. channels: audio.AudioChannel.CHANNEL_2,
  5. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  6. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  7. }
  8. let audioCapturerInfo = {
  9. source: audio.SourceType.SOURCE_TYPE_MIC,
  10. capturerFlags: 0
  11. }
  12. let audioCapturerOptions = {
  13. streamInfo: audioStreamInfo,
  14. capturerInfo: audioCapturerInfo
  15. }
  16. audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
  17. if (err) {
  18. console.error(`AudioCapturer Created : Error: ${err}`);
  19. } else {
  20. console.info('AudioCapturer Created : Success : SUCCESS');
  21. let audioCapturer = data;
  22. }
  23. });

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>

獲取音頻采集器。使用promise 方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

需要權(quán)限: ohos.permission.MICROPHONE

參數(shù):

參數(shù)名

類型

必填

說明

options

AudioCapturerOptions

配置音頻采集器。

返回值:

類型

說明

Promise<AudioCapturer>

音頻采集器對象

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. let audioStreamInfo = {
  3. samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  4. channels: audio.AudioChannel.CHANNEL_2,
  5. sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  6. encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
  7. }
  8. let audioCapturerInfo = {
  9. source: audio.SourceType.SOURCE_TYPE_MIC,
  10. capturerFlags: 0
  11. }
  12. let audioCapturerOptions = {
  13. streamInfo: audioStreamInfo,
  14. capturerInfo: audioCapturerInfo
  15. }
  16. let audioCapturer;
  17. audio.createAudioCapturer(audioCapturerOptions).then((data) => {
  18. audioCapturer = data;
  19. console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
  20. }).catch((err) => {
  21. console.error(`AudioCapturer Created : ERROR : ${err}`);
  22. });

AudioVolumeType

枚舉,音頻流類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

名稱

說明

VOICE_CALL8+

0

語音電話。

RINGTONE

2

鈴聲。

MEDIA

3

媒體。

VOICE_ASSISTANT8+

9

語音助手。

InterruptMode9+

枚舉,焦點模型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt

名稱

說明

SHARE_MODE

0

共享焦點模式。

INDEPENDENT_MODE

1

獨立焦點模式。

DeviceFlag

枚舉,可獲取的設(shè)備種類。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

說明

OUTPUT_DEVICES_FLAG

1

輸出設(shè)備。

INPUT_DEVICES_FLAG

2

輸入設(shè)備。

ALL_DEVICES_FLAG

3

所有設(shè)備。

DeviceRole

枚舉,設(shè)備角色。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

說明

INPUT_DEVICE

1

輸入設(shè)備角色。

OUTPUT_DEVICE

2

輸出設(shè)備角色。

DeviceType

枚舉,設(shè)備類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

說明

INVALID

0

無效設(shè)備。

EARPIECE

1

聽筒。

SPEAKER

2

揚聲器。

WIRED_HEADSET

3

有線耳機,帶麥克風(fēng)。

WIRED_HEADPHONES

4

有線耳機,無麥克風(fēng)。

BLUETOOTH_SCO

7

藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。

BLUETOOTH_A2DP

8

藍(lán)牙設(shè)備A2DP(Advanced Audio Distribution Profile)連接。

MIC

15

麥克風(fēng)。

USB_HEADSET

22

USB耳機,帶麥克風(fēng)。

DEFAULT9+

1000

默認(rèn)設(shè)備類型。

CommunicationDeviceType9+

枚舉,用于通信的可用設(shè)備類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

名稱

說明

SPEAKER

2

揚聲器。

AudioRingMode

枚舉,鈴聲模式。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

名稱

說明

RINGER_MODE_SILENT

0

靜音模式。

RINGER_MODE_VIBRATE

1

震動模式。

RINGER_MODE_NORMAL

2

響鈴模式。

AudioSampleFormat8+

枚舉,音頻采樣格式。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

SAMPLE_FORMAT_INVALID

-1

無效格式。

SAMPLE_FORMAT_U8

0

無符號8位整數(shù)。

SAMPLE_FORMAT_S16LE

1

帶符號的16位整數(shù),小尾數(shù)。

SAMPLE_FORMAT_S24LE

2

帶符號的24位整數(shù),小尾數(shù)。

由于系統(tǒng)限制,該采樣格式僅部分設(shè)備支持,請根據(jù)實際情況使用。

SAMPLE_FORMAT_S32LE

3

帶符號的32位整數(shù),小尾數(shù)。

由于系統(tǒng)限制,該采樣格式僅部分設(shè)備支持,請根據(jù)實際情況使用。

SAMPLE_FORMAT_F32LE9+

4

帶符號的32位浮點數(shù),小尾數(shù)。

由于系統(tǒng)限制,該采樣格式僅部分設(shè)備支持,請根據(jù)實際情況使用。

AudioErrors9+

枚舉,音頻錯誤碼。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

ERROR_INVALID_PARAM

6800101

無效入?yún)ⅰ?/p>

ERROR_NO_MEMORY

6800102

分配內(nèi)存失敗。

ERROR_ILLEGAL_STATE

6800103

狀態(tài)不支持。

ERROR_UNSUPPORTED

6800104

參數(shù)選項不支持。

ERROR_TIMEOUT

6800105

處理超時。

ERROR_STREAM_LIMIT

6800201

音頻流數(shù)量達到限制。

ERROR_SYSTEM

6800301

系統(tǒng)處理異常。

AudioChannel8+

枚舉, 音頻聲道。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

CHANNEL_1

0x1 << 0

第一聲道。

CHANNEL_2

0x1 << 1

第二聲道。

AudioSamplingRate8+

枚舉,音頻采樣率,具體設(shè)備支持的采樣率規(guī)格會存在差異。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

SAMPLE_RATE_8000

8000

采樣率為8000。

SAMPLE_RATE_11025

11025

采樣率為11025。

SAMPLE_RATE_12000

12000

采樣率為12000。

SAMPLE_RATE_16000

16000

采樣率為16000。

SAMPLE_RATE_22050

22050

采樣率為22050。

SAMPLE_RATE_24000

24000

采樣率為24000。

SAMPLE_RATE_32000

32000

采樣率為32000。

SAMPLE_RATE_44100

44100

采樣率為44100。

SAMPLE_RATE_48000

48000

采樣率為48000。

SAMPLE_RATE_64000

64000

采樣率為64000。

SAMPLE_RATE_96000

96000

采樣率為96000。

AudioEncodingType8+

枚舉,音頻編碼類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

ENCODING_TYPE_INVALID

-1

無效。

ENCODING_TYPE_RAW

0

PCM編碼。

ContentType

枚舉,音頻內(nèi)容類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

CONTENT_TYPE_UNKNOWN

0

未知類型。

CONTENT_TYPE_SPEECH

1

語音。

CONTENT_TYPE_MUSIC

2

音樂。

CONTENT_TYPE_MOVIE

3

電影。

CONTENT_TYPE_SONIFICATION

4

通知音。

CONTENT_TYPE_RINGTONE8+

5

鈴聲。

StreamUsage

枚舉,音頻流使用類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

STREAM_USAGE_UNKNOWN

0

未知類型。

STREAM_USAGE_MEDIA

1

音頻。

STREAM_USAGE_VOICE_COMMUNICATION

2

語音通信。

STREAM_USAGE_VOICE_ASSISTANT9+

3

語音播報。

STREAM_USAGE_NOTIFICATION_RINGTONE

6

通知鈴聲。

AudioState8+

枚舉,音頻狀態(tài)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

STATE_INVALID

-1

無效狀態(tài)。

STATE_NEW

0

創(chuàng)建新實例狀態(tài)。

STATE_PREPARED

1

準(zhǔn)備狀態(tài)。

STATE_RUNNING

2

可運行狀態(tài)。

STATE_STOPPED

3

停止?fàn)顟B(tài)。

STATE_RELEASED

4

釋放狀態(tài)。

STATE_PAUSED

5

暫停狀態(tài)。

AudioRendererRate8+

枚舉,音頻渲染速度。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

說明

RENDER_RATE_NORMAL

0

正常速度。

RENDER_RATE_DOUBLE

1

2倍速。

RENDER_RATE_HALF

2

0.5倍數(shù)。

InterruptType

枚舉,中斷類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

說明

INTERRUPT_TYPE_BEGIN

1

音頻播放中斷事件開始。

INTERRUPT_TYPE_END

2

音頻播放中斷事件結(jié)束。

InterruptForceType9+

枚舉,強制打斷類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

說明

INTERRUPT_FORCE

0

由系統(tǒng)進行操作,強制打斷音頻播放。

INTERRUPT_SHARE

1

由應(yīng)用進行操作,可以選擇打斷或忽略。

InterruptHint

枚舉,中斷提示。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

說明

INTERRUPT_HINT_NONE8+

0

無提示。

INTERRUPT_HINT_RESUME

1

提示音頻恢復(fù)。

INTERRUPT_HINT_PAUSE

2

提示音頻暫停。

INTERRUPT_HINT_STOP

3

提示音頻停止。

INTERRUPT_HINT_DUCK

4

提示音頻躲避。(躲避:音量減弱,而不會停止)

INTERRUPT_HINT_UNDUCK8+

5

提示音量恢復(fù)。

AudioStreamInfo8+

音頻流信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

類型

必填

說明

samplingRate

AudioSamplingRate

音頻文件的采樣率。

channels

AudioChannel

音頻文件的通道數(shù)。

sampleFormat

AudioSampleFormat

音頻采樣格式。

encodingType

AudioEncodingType

音頻編碼格式。

AudioRendererInfo8+

音頻渲染器信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

類型

必填

說明

content

ContentType

媒體類型。

usage

StreamUsage

音頻流使用類型。

rendererFlags

number

音頻渲染器標(biāo)志。

AudioRendererOptions8+

音頻渲染器選項信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

必填

說明

streamInfo

AudioStreamInfo

表示音頻流信息。

rendererInfo

AudioRendererInfo

表示渲染器信息。

InterruptEvent9+

播放中斷時,應(yīng)用接收的中斷事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

必填

說明

eventType

InterruptType

中斷事件類型,開始或是結(jié)束。

forceType

InterruptForceType

操作是由系統(tǒng)執(zhí)行或是由應(yīng)用程序執(zhí)行。

hintType

InterruptHint

中斷提示。

VolumeEvent9+

音量改變時,應(yīng)用接收的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

名稱

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

volume

number

音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。

updateUi

boolean

在UI中顯示音量變化。

MicStateChangeEvent9+

麥克風(fēng)狀態(tài)變化時,應(yīng)用接收的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

類型

必填

說明

mute

boolean

回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

DeviceChangeAction

描述設(shè)備連接狀態(tài)變化和設(shè)備信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

類型

必填

說明

type

DeviceChangeType

設(shè)備連接狀態(tài)變化。

deviceDescriptors

AudioDeviceDescriptors

設(shè)備信息。

DeviceChangeType

枚舉,設(shè)備連接狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

說明

CONNECT

0

設(shè)備連接。

DISCONNECT

1

斷開設(shè)備連接。

AudioCapturerOptions8+

音頻采集器選項信息。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Capturer

名稱

類型

必填

說明

streamInfo

AudioStreamInfo

表示音頻流信息。

capturerInfo

AudioCapturerInfo

表示采集器信息。

AudioCapturerInfo8+

描述音頻采集器信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

類型

必填

說明

source

SourceType

音源類型。

capturerFlags

number

音頻采集器標(biāo)志。

SourceType8+

枚舉,音源類型。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

名稱

說明

SOURCE_TYPE_INVALID

-1

無效的音頻源。

SOURCE_TYPE_MIC

0

Mic音頻源。

SOURCE_TYPE_VOICE_RECOGNITION9+

1

語音識別源。

SOURCE_TYPE_VOICE_COMMUNICATION

7

語音通話場景的音頻源。

AudioScene8+

枚舉,音頻場景。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

名稱

說明

AUDIO_SCENE_DEFAULT

0

默認(rèn)音頻場景。

AUDIO_SCENE_VOICE_CHAT

3

語音聊天模式。

AudioManager

管理音頻音量和音頻設(shè)備。在調(diào)用AudioManager的接口前,需要先通過getAudioManager創(chuàng)建實例。

setAudioParameter

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

音頻參數(shù)設(shè)置,使用callback方式異步返回結(jié)果。

本接口的使用場景為根據(jù)硬件設(shè)備支持能力擴展音頻配置。在不同的設(shè)備平臺上,所支持的音頻參數(shù)會存在差異。示例代碼內(nèi)使用樣例參數(shù),實際支持的音頻配置參數(shù)見具體設(shè)備平臺的資料描述。

需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名

類型

必填

說明

key

string

被設(shè)置的音頻參數(shù)的鍵。

value

string

被設(shè)置的音頻參數(shù)的值。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

  1. audioManager.setAudioParameter('key_example', 'value_example', (err) => {
  2. if (err) {
  3. console.error(`Failed to set the audio parameter. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful setting of the audio parameter.');
  7. });

setAudioParameter

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

音頻參數(shù)設(shè)置,使用Promise方式異步返回結(jié)果。

本接口的使用場景為根據(jù)硬件設(shè)備支持能力擴展音頻配置。在不同的設(shè)備平臺上,所支持的音頻參數(shù)會存在差異。示例代碼內(nèi)使用樣例參數(shù),實際支持的音頻配置參數(shù)見具體設(shè)備平臺的資料描述。

需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名

類型

必填

說明

key

string

被設(shè)置的音頻參數(shù)的鍵。

value

string

被設(shè)置的音頻參數(shù)的值。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

getAudioParameter

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

獲取指定音頻參數(shù)值,使用callback方式異步返回結(jié)果。

本接口的使用場景為根據(jù)硬件設(shè)備支持能力擴展音頻配置。在不同的設(shè)備平臺上,所支持的音頻參數(shù)會存在差異。示例代碼內(nèi)使用樣例參數(shù),實際支持的音頻配置參數(shù)見具體設(shè)備平臺的資料描述。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名

類型

必填

說明

key

string

待獲取的音頻參數(shù)的鍵。

callback

AsyncCallback<string>

回調(diào)返回獲取的音頻參數(shù)的值。

示例:

  1. audioManager.getAudioParameter('key_example', (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the value of the audio parameter. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
  7. });

getAudioParameter

getAudioParameter(key: string): Promise<string>

獲取指定音頻參數(shù)值,使用Promise方式異步返回結(jié)果。

本接口的使用場景為根據(jù)硬件設(shè)備支持能力擴展音頻配置。在不同的設(shè)備平臺上,所支持的音頻參數(shù)會存在差異。示例代碼內(nèi)使用樣例參數(shù),實際支持的音頻配置參數(shù)見具體設(shè)備平臺的資料描述。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

參數(shù):

參數(shù)名

類型

必填

說明

key

string

待獲取的音頻參數(shù)的鍵。

返回值:

類型

說明

Promise<string>

Promise回調(diào)返回獲取的音頻參數(shù)的值。

示例:

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

getAudioScene8+

getAudioScene(callback: AsyncCallback<AudioScene>): void

獲取音頻場景模式,使用callback方式返回異步結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioScene>

用于返回音頻場景模式的回調(diào)。

示例:

  1. audioManager.getAudioScene((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the audio scene mode.? ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
  7. });

getAudioScene8+

getAudioScene(): Promise<AudioScene>

獲取音頻場景模式,使用Promise方式返回異步結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型

說明

Promise<AudioScene>

用于返回音頻場景模式的回調(diào)。

示例:

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

getVolumeManager9+

getVolumeManager(): AudioVolumeManager

獲取音頻音量管理器。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

示例:

  1. let audioVolumeManager = audioManager.getVolumeManager();

getStreamManager9+

getStreamManager(): AudioStreamManager

獲取音頻流管理器。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core

示例:

  1. let audioStreamManager = audioManager.getStreamManager();

getRoutingManager9+

getRoutingManager(): AudioRoutingManager

獲取音頻路由設(shè)備管理器。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

示例:

  1. let audioRoutingManager = audioManager.getRoutingManager();

setVolume(deprecated)

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

設(shè)置指定流的音量,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY

僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

volume

number

音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。

callback

AsyncCallback<void>

回調(diào)表示成功還是失敗。

示例:

  1. audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful volume setting.');
  7. });

setVolume(deprecated)

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

設(shè)置指定流的音量,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY

僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

volume

number

音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。

返回值:

類型

說明

Promise<void>

Promise回調(diào)表示成功還是失敗。

示例:

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

getVolume(deprecated)

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

獲取指定流的音量,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回音量大小。

示例:

  1. audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the volume is obtained.');
  7. });

getVolume(deprecated)

getVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的音量,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回音量大小。

示例:

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

getMinVolume(deprecated)

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

獲取指定流的最小音量,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMinVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回最小音量。

示例:

  1. audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the minimum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
  7. });

getMinVolume(deprecated)

getMinVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的最小音量,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMinVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回最小音量。

示例:

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

getMaxVolume(deprecated)

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

獲取指定流的最大音量,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMaxVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回最大音量大小。

示例:

  1. audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the maximum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
  7. });

getMaxVolume(deprecated)

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的最大音量,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMaxVolume替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回最大音量大小。

示例:

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

mute(deprecated)

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

設(shè)置指定音量流靜音,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

mute

boolean

靜音狀態(tài),true為靜音,false為非靜音。

callback

AsyncCallback<void>

回調(diào)表示成功還是失敗。

示例:

  1. audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the stream. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the stream is muted.');
  7. });

mute(deprecated)

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

設(shè)置指定音量流靜音,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

mute

boolean

靜音狀態(tài),true為靜音,false為非靜音。

返回值:

類型

說明

Promise<void>

Promise回調(diào)表示成功還是失敗。

示例:

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

isMute(deprecated)

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

獲取指定音量流是否被靜音,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的isMute替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<boolean>

回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

  1. audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
  7. });

isMute(deprecated)

isMute(volumeType: AudioVolumeType): Promise<boolean>

獲取指定音量流是否被靜音,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的isMute替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

isActive(deprecated)

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

獲取指定音量流是否為活躍狀態(tài),使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioStreamManager中的isActive替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<boolean>

回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

  1. audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the stream. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
  7. });

isActive(deprecated)

isActive(volumeType: AudioVolumeType): Promise<boolean>

獲取指定音量流是否為活躍狀態(tài),使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioStreamManager中的isActive替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

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

setRingerMode(deprecated)

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

設(shè)置鈴聲模式,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY

僅在靜音和非靜音狀態(tài)切換時需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

mode

AudioRingMode

音頻鈴聲模式。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

  1. audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
  2. if (err) {
  3. console.error(`Failed to set the ringer mode.? ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate a successful setting of the ringer mode.');
  7. });

setRingerMode(deprecated)

setRingerMode(mode: AudioRingMode): Promise<void>

設(shè)置鈴聲模式,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。替代接口能力僅對系統(tǒng)應(yīng)用開放。

需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY

僅在靜音和非靜音狀態(tài)切換時需要該權(quán)限。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

mode

AudioRingMode

音頻鈴聲模式。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

getRingerMode(deprecated)

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

獲取鈴聲模式,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getRingerMode替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioRingMode>

回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

  1. audioManager.getRingerMode((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the ringer mode.? ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
  7. });

getRingerMode(deprecated)

getRingerMode(): Promise<AudioRingMode>

獲取鈴聲模式,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getRingerMode替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型

說明

Promise<AudioRingMode>

Promise回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

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

getDevices(deprecated)

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

獲取音頻設(shè)備列表,使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的getDevices替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceFlag

DeviceFlag

設(shè)備類型的flag。

callback

AsyncCallback<AudioDeviceDescriptors>

回調(diào),返回設(shè)備列表。

示例:

  1. audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the device list. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device list is obtained.');
  7. });

getDevices(deprecated)

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的getDevices替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceFlag

DeviceFlag

設(shè)備類型的flag。

返回值:

類型

說明

Promise<AudioDeviceDescriptors>

Promise回調(diào)返回設(shè)備列表。

示例:

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

setDeviceActive(deprecated)

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

設(shè)置設(shè)備激活狀態(tài),使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的setCommunicationDevice替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

ActiveDeviceType

活躍音頻設(shè)備類型。

active

boolean

設(shè)備激活狀態(tài)。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

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

setDeviceActive(deprecated)

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

設(shè)置設(shè)備激活狀態(tài),使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的setCommunicationDevice替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

ActiveDeviceType

活躍音頻設(shè)備類型。

active

boolean

設(shè)備激活狀態(tài)。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isDeviceActive(deprecated)

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

獲取指定設(shè)備的激活狀態(tài),使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的isCommunicationDeviceActive替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

ActiveDeviceType

活躍音頻設(shè)備類型。

callback

AsyncCallback<boolean>

回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

  1. audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the active status of the device is obtained.');
  7. });

isDeviceActive(deprecated)

isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>

獲取指定設(shè)備的激活狀態(tài),使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的isCommunicationDeviceActive替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

ActiveDeviceType

活躍音頻設(shè)備類型。

返回值:

Type

Description

Promise<boolean>

Promise回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

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

setMicrophoneMute(deprecated)

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

設(shè)置麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的setMicrophoneMute替代。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

mute

boolean

待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

  1. audioManager.setMicrophoneMute(true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the microphone. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the microphone is muted.');
  7. });

setMicrophoneMute(deprecated)

setMicrophoneMute(mute: boolean): Promise<void>

設(shè)置麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的setMicrophoneMute替代。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

mute

boolean

待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isMicrophoneMute(deprecated)

isMicrophoneMute(callback: AsyncCallback<boolean>): void

獲取麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的isMicrophoneMute替代。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<boolean>

回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

  1. audioManager.isMicrophoneMute((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status of the microphone. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
  7. });

isMicrophoneMute(deprecated)

isMicrophoneMute(): Promise<boolean>

獲取麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的isMicrophoneMute替代。

需要權(quán)限: ohos.permission.MICROPHONE

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

on('deviceChange')(deprecated)

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

設(shè)備更改。音頻設(shè)備連接狀態(tài)變化。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的on替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

type

string

訂閱的事件的類型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

獲取設(shè)備更新詳情。

示例:

  1. audioManager.on('deviceChange', (deviceChanged) => {
  2. console.info(`device change type : ${deviceChanged.type} `);
  3. console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  4. console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  5. console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
  6. });

off('deviceChange')(deprecated)

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

取消訂閱音頻設(shè)備連接變化事件。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的off替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

type

string

訂閱的事件的類型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

獲取設(shè)備更新詳情。

示例:

  1. audioManager.off('deviceChange', (deviceChanged) => {
  2. console.info('Should be no callback.');
  3. });

on('interrupt')

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

請求焦點并開始監(jiān)聽音頻打斷事件(當(dāng)應(yīng)用程序的音頻被另一個播放事件中斷,回調(diào)通知此應(yīng)用程序)。

on('audioInterrupt')作用一致,均用于監(jiān)聽焦點變化。為無音頻流的場景(未曾創(chuàng)建AudioRenderer對象),比如FM、語音喚醒等提供焦點變化監(jiān)聽功能。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個應(yīng)用會打斷第一個應(yīng)用,觸發(fā)該事件)。

interrupt

AudioInterrupt

音頻打斷事件類型的參數(shù)。

callback

Callback<InterruptAction>

音頻打斷事件回調(diào)方法。

示例:

  1. let interAudioInterrupt = {
  2. streamUsage:2,
  3. contentType:0,
  4. pauseWhenDucked:true
  5. };
  6. audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
  7. if (InterruptAction.actionType === 0) {
  8. console.info('An event to gain the audio focus starts.');
  9. console.info(`Focus gain event: ${InterruptAction} `);
  10. }
  11. if (InterruptAction.actionType === 1) {
  12. console.info('An audio interruption event starts.');
  13. console.info(`Audio interruption event: ${InterruptAction} `);
  14. }
  15. });

off('interrupt')

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

取消監(jiān)聽音頻打斷事件(刪除監(jiān)聽事件,取消打斷)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個應(yīng)用會打斷第一個應(yīng)用,觸發(fā)該事件)。

interrupt

AudioInterrupt

音頻打斷事件類型的參數(shù)。

callback

Callback<InterruptAction>

音頻打斷事件回調(diào)方法。

示例:

  1. let interAudioInterrupt = {
  2. streamUsage:2,
  3. contentType:0,
  4. pauseWhenDucked:true
  5. };
  6. audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
  7. if (InterruptAction.actionType === 0) {
  8. console.info('An event to release the audio focus starts.');
  9. console.info(`Focus release event: ${InterruptAction} `);
  10. }
  11. });

AudioVolumeManager9+

音量管理。在使用AudioVolumeManager的接口前,需要使用getVolumeManager獲取AudioVolumeManager實例。

getVolumeGroupManager9+

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

獲取音頻組管理器,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

groupId

number

音量組id。

callback

AsyncCallback<AudioVolumeGroupManager>

回調(diào),返回一個音量組實例。

示例:

  1. let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
  2. audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
  3. if (err) {
  4. console.error(`Failed to obtain the volume group infos list. ${err}`);
  5. return;
  6. }
  7. console.info('Callback invoked to indicate that the volume group infos list is obtained.');
  8. });

getVolumeGroupManager9+

getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>

獲取音頻組管理器,使用promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

groupId

number

音量組id。

返回值:

類型

說明

Promise< AudioVolumeGroupManager >

音量組實例。

示例:

  1. let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
  2. let audioVolumeGroupManager;
  3. getVolumeGroupManager();
  4. async function getVolumeGroupManager(){
  5. audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
  6. console.info('Callback invoked to indicate that the volume group infos list is obtained.');
  7. }

on('volumeChange')9+

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

監(jiān)聽系統(tǒng)音量變化事件,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'volumeChange'。

callback

Callback<VolumeEvent>

回調(diào)方法。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

AudioVolumeGroupManager9+

管理音頻組音量。在調(diào)用AudioVolumeGroupManager的接口前,需要先通過 getVolumeGroupManager 創(chuàng)建實例。

getVolume9+

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

獲取指定流的音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回音量大小。

示例:

  1. audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the volume. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the volume is obtained.');
  7. });

getVolume9+

getVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回音量大小。

示例:

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

getMinVolume9+

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

獲取指定流的最小音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回最小音量。

示例:

  1. audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the minimum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
  7. });

getMinVolume9+

getMinVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的最小音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回最小音量。

示例:

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

getMaxVolume9+

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

獲取指定流的最大音量,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<number>

回調(diào)返回最大音量大小。

示例:

  1. audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the maximum volume. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
  7. });

getMaxVolume9+

getMaxVolume(volumeType: AudioVolumeType): Promise<number>

獲取指定流的最大音量,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<number>

Promise回調(diào)返回最大音量大小。

示例:

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

isMute9+

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

獲取指定音量流是否被靜音,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

callback

AsyncCallback<boolean>

回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

  1. audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
  7. });

isMute9+

isMute(volumeType: AudioVolumeType): Promise<boolean>

獲取指定音量流是否被靜音,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音量流類型。

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

getRingerMode9+

getRingerMode(callback: AsyncCallback<AudioRingMode>): void

獲取鈴聲模式,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioRingMode>

回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

  1. audioVolumeGroupManager.getRingerMode((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the ringer mode.? ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
  7. });

getRingerMode9+

getRingerMode(): Promise<AudioRingMode>

獲取鈴聲模式,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

返回值:

類型

說明

Promise<AudioRingMode>

Promise回調(diào)返回系統(tǒng)的鈴聲模式。

示例:

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

on('ringerModeChange')9+

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

監(jiān)聽鈴聲模式變化事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'ringerModeChange'(鈴聲模式變化事件,檢測到鈴聲模式改變時,觸發(fā)該事件)。

callback

Callback<AudioRingMode>

回調(diào)方法。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

setMicrophoneMute9+

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

設(shè)置麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MANAGE_AUDIO_CONFIG

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

mute

boolean

待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

  1. audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
  2. if (err) {
  3. console.error(`Failed to mute the microphone. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the microphone is muted.');
  7. });

setMicrophoneMute9+

setMicrophoneMute(mute: boolean): Promise<void>

設(shè)置麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

需要權(quán)限: ohos.permission.MANAGE_AUDIO_CONFIG

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

mute

boolean

待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isMicrophoneMute9+

isMicrophoneMute(callback: AsyncCallback<boolean>): void

獲取麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<boolean>

回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

  1. audioVolumeGroupManager.isMicrophoneMute((err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the mute status of the microphone. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
  7. });

isMicrophoneMute9+

isMicrophoneMute(): Promise<boolean>

獲取麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。

示例:

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

on('micStateChange')9+

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

監(jiān)聽系統(tǒng)麥克風(fēng)狀態(tài)更改事件。

目前此訂閱接口在單進程多AudioManager實例的使用場景下,僅最后一個實例的訂閱生效,其他實例的訂閱會被覆蓋(即使最后一個實例沒有進行訂閱),因此推薦使用單一AudioManager實例進行開發(fā)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'micStateChange'(系統(tǒng)麥克風(fēng)狀態(tài)變化事件,檢測到系統(tǒng)麥克風(fēng)狀態(tài)改變時,觸發(fā)該事件)。

callback

Callback<MicStateChangeEvent>

回調(diào)方法,返回變更后的麥克風(fēng)狀態(tài)。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

AudioStreamManager9+

管理音頻流。在使用AudioStreamManager的API前,需要使用getStreamManager獲取AudioStreamManager實例。

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void

獲取當(dāng)前音頻渲染器的信息。使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioRendererChangeInfoArray>

回調(diào)函數(shù),返回當(dāng)前音頻渲染器的信息。

示例:

  1. audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
  2. console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
  3. if (err) {
  4. console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  5. } else {
  6. if (AudioRendererChangeInfoArray != null) {
  7. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  8. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  9. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  10. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  11. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  12. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  13. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  14. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  15. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  16. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  17. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  18. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  19. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  20. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  21. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  22. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  23. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  24. }
  25. }
  26. }
  27. }
  28. });

getCurrentAudioRendererInfoArray9+

getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>

獲取當(dāng)前音頻渲染器的信息。使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<AudioRendererChangeInfoArray>

Promise對象,返回當(dāng)前音頻渲染器信息。

示例:

  1. async function getCurrentAudioRendererInfoArray(){
  2. await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
  3. console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
  4. if (AudioRendererChangeInfoArray != null) {
  5. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  6. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  7. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  8. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  9. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  10. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  11. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  12. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  13. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  18. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  19. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  22. }
  23. }
  24. }
  25. }).catch((err) => {
  26. console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  27. });
  28. }

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void

獲取當(dāng)前音頻采集器的信息。使用callback異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioCapturerChangeInfoArray>

回調(diào)函數(shù),返回當(dāng)前音頻采集器的信息。

示例:

  1. audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
  2. console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
  3. if (err) {
  4. console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  5. } else {
  6. if (AudioCapturerChangeInfoArray != null) {
  7. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  8. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  9. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  10. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  11. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  12. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  13. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  18. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  19. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  22. }
  23. }
  24. }
  25. }
  26. });

getCurrentAudioCapturerInfoArray9+

getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>

獲取當(dāng)前音頻采集器的信息。使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<AudioCapturerChangeInfoArray>

Promise對象,返回當(dāng)前音頻渲染器信息。

示例:

  1. async function getCurrentAudioCapturerInfoArray(){
  2. await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
  3. console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
  4. if (AudioCapturerChangeInfoArray != null) {
  5. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  6. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  7. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  8. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  9. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  10. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  11. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  12. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  13. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  14. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  15. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  16. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  17. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  18. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  19. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  20. }
  21. }
  22. }
  23. }).catch((err) => {
  24. console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  25. });
  26. }

on('audioRendererChange')9+

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

監(jiān)聽音頻渲染器更改事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,支持的事件'audioRendererChange':當(dāng)音頻渲染器發(fā)生更改時觸發(fā)。

callback

Callback<AudioRendererChangeInfoArray>

回調(diào)函數(shù)。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
  2. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  3. let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
  4. console.info(`## RendererChange on is called for ${i} ##`);
  5. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
  6. console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
  7. console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
  8. console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
  9. console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
  10. console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
  11. for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
  12. console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
  13. console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
  14. console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
  15. console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
  16. console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
  17. console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
  18. console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
  19. console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
  20. }
  21. }
  22. });

off('audioRendererChange')9+

off(type: "audioRendererChange"): void

取消監(jiān)聽音頻渲染器更改事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,支持的事件'audioRendererChange':音頻渲染器更改事件。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

on('audioCapturerChange')9+

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

監(jiān)聽音頻采集器更改事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,支持的事件'audioCapturerChange':當(dāng)音頻采集器發(fā)生更改時觸發(fā)。

callback

Callback<AudioCapturerChangeInfoArray>

回調(diào)函數(shù)。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

  1. audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
  2. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  3. console.info(`## CapChange on is called for element ${i} ##`);
  4. console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  5. console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
  6. console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  7. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  8. console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
  9. let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
  10. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  11. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  12. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  13. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  14. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  15. console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  16. console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  17. console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  18. console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  19. }
  20. }
  21. });

off('audioCapturerChange')9+

off(type: "audioCapturerChange"): void;

取消監(jiān)聽音頻采集器更改事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件類型,支持的事件'audioCapturerChange':音頻采集器更改事件。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

isActive9+

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

獲取指定音頻流是否為活躍狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音頻流類型。

callback

AsyncCallback<boolean>

回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

  1. audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the stream. ${err}`);
  4. return;
  5. }
  6. console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
  7. });

isActive9+

isActive(volumeType: AudioVolumeType): Promise<boolean>

獲取指定音頻流是否為活躍狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

volumeType

AudioVolumeType

音頻流類型。

返回值:

類型

說明

Promise<boolean>

Promise回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。

示例:

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

AudioRoutingManager9+

音頻路由管理。在使用AudioRoutingManager的接口前,需要使用getRoutingManager獲取AudioRoutingManager實例。

getDevices9+

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

獲取音頻設(shè)備列表,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceFlag

DeviceFlag

設(shè)備類型的flag。

callback

AsyncCallback<AudioDeviceDescriptors>

回調(diào),返回設(shè)備列表。

示例:

  1. audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the device list. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the device list is obtained.');
  7. });

getDevices9+

getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>

獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

deviceFlag

DeviceFlag

設(shè)備類型的flag。

返回值:

類型

說明

Promise<AudioDeviceDescriptors>

Promise回調(diào)返回設(shè)備列表。

示例:

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

on9+

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

設(shè)備更改。音頻設(shè)備連接狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

type

string

訂閱的事件的類型。支持事件:'deviceChange'

deviceFlag

DeviceFlag

設(shè)備類型的flag。

callback

Callback<DeviceChangeAction>

獲取設(shè)備更新詳情。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

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

off9+

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

取消訂閱音頻設(shè)備連接變化事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

參數(shù):

參數(shù)名

類型

必填

說明

type

string

訂閱的事件的類型。支持事件:'deviceChange'

callback

Callback<DeviceChangeAction>

獲取設(shè)備更新詳情。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

  1. audioRoutingManager.off('deviceChange', (deviceChanged) => {
  2. console.info('Should be no callback.');
  3. });

setCommunicationDevice9+

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

設(shè)置通信設(shè)備激活狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

CommunicationDeviceType

音頻設(shè)備類型。

active

boolean

設(shè)備激活狀態(tài)。

callback

AsyncCallback<void>

回調(diào)返回設(shè)置成功或失敗。

示例:

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

setCommunicationDevice9+

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

設(shè)置通信設(shè)備激活狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

CommunicationDeviceType

活躍音頻設(shè)備類型。

active

boolean

設(shè)備激活狀態(tài)。

返回值:

類型

說明

Promise<void>

Promise回調(diào)返回設(shè)置成功或失敗。

示例:

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

isCommunicationDeviceActive9+

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

獲取指定通信設(shè)備的激活狀態(tài),使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

CommunicationDeviceType

活躍音頻設(shè)備類型。

callback

AsyncCallback<boolean>

回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

  1. audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
  2. if (err) {
  3. console.error(`Failed to obtain the active status of the device. ${err}`);
  4. return;
  5. }
  6. console.info('Callback invoked to indicate that the active status of the device is obtained.');
  7. });

isCommunicationDeviceActive9+

isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>

獲取指定通信設(shè)備的激活狀態(tài),使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication

參數(shù):

參數(shù)名

類型

必填

說明

deviceType

CommunicationDeviceType

活躍音頻設(shè)備類型。

返回值:

Type

Description

Promise<boolean>

Promise回調(diào)返回設(shè)備的激活狀態(tài)。

示例:

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

AudioRendererChangeInfoArray9+

數(shù)組類型,AudioRenderChangeInfo數(shù)組,只讀。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

AudioRendererChangeInfo9+

描述音頻渲染器更改信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

可讀

可寫

說明

streamId

number

音頻流唯一id。

rendererInfo

AudioRendererInfo

音頻渲染器信息。

deviceDescriptors

AudioDeviceDescriptors

音頻設(shè)備描述。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const audioManager = audio.getAudioManager();
  3. let audioStreamManager = audioManager.getStreamManager();
  4. let resultFlag = false;
  5. audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
  6. for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
  7. console.info(`## RendererChange on is called for ${i} ##`);
  8. console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
  9. console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
  10. console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
  11. console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
  12. let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
  13. for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
  14. console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
  15. console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  16. console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  17. console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
  18. console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
  19. console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  20. console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  21. console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  22. }
  23. if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
  24. resultFlag = true;
  25. console.info(`ResultFlag for ${i} is: ${resultFlag}`);
  26. }
  27. }
  28. });

AudioCapturerChangeInfoArray9+

數(shù)組類型,AudioCapturerChangeInfo數(shù)組,只讀。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

AudioCapturerChangeInfo9+

描述音頻采集器更改信息。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

名稱

類型

可讀

可寫

說明

streamId

number

音頻流唯一id。

capturerInfo

AudioCapturerInfo

音頻采集器信息。

deviceDescriptors

AudioDeviceDescriptors

音頻設(shè)備描述。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. const audioManager = audio.getAudioManager();
  3. let audioStreamManager = audioManager.getStreamManager();
  4. let resultFlag = false;
  5. audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
  6. for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
  7. console.info(`## CapChange on is called for element ${i} ##`);
  8. console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
  9. console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
  10. console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
  11. let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
  12. for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
  13. console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
  14. console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  15. console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  16. console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
  17. console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
  18. console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  19. console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  20. console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  21. }
  22. if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
  23. resultFlag = true;
  24. console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
  25. }
  26. }
  27. });

AudioDeviceDescriptors

設(shè)備屬性數(shù)組類型,為AudioDeviceDescriptor的數(shù)組,只讀。

AudioDeviceDescriptor

描述音頻設(shè)備。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

類型

可讀

可寫

說明

deviceRole

DeviceRole

設(shè)備角色。

deviceType

DeviceType

設(shè)備類型。

id9+

number

設(shè)備id,唯一。

name9+

string

設(shè)備名稱。

address9+

string

設(shè)備地址。

sampleRates9+

Array<number>

支持的采樣率。

channelCounts9+

Array<number>

支持的通道數(shù)。

channelMasks9+

Array<number>

支持的通道掩碼。

示例:

  1. import audio from '@ohos.multimedia.audio';
  2. function displayDeviceProp(value) {
  3. deviceRoleValue = value.deviceRole;
  4. deviceTypeValue = value.deviceType;
  5. }
  6. let deviceRoleValue = null;
  7. let deviceTypeValue = null;
  8. const promise = audio.getAudioManager().getDevices(1);
  9. promise.then(function (value) {
  10. console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
  11. value.forEach(displayDeviceProp);
  12. if (deviceTypeValue != null && deviceRoleValue != null){
  13. console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS');
  14. } else {
  15. console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL');
  16. }
  17. });

AudioRenderer8+

提供音頻渲染的相關(guān)接口。在調(diào)用AudioRenderer的接口前,需要先通過createAudioRenderer創(chuàng)建實例。

屬性

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

可讀

可寫

說明

state8+

AudioState

音頻渲染器的狀態(tài)。

示例:

  1. let state = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void

獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioRendererInfo>

返回音頻渲染器的信息。

示例:

  1. audioRenderer.getRendererInfo((err, rendererInfo) => {
  2. console.info('Renderer GetRendererInfo:');
  3. console.info(`Renderer content: ${rendererInfo.content}`);
  4. console.info(`Renderer usage: ${rendererInfo.usage}`);
  5. console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
  6. });

getRendererInfo8+

getRendererInfo(): Promise<AudioRendererInfo>

獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<AudioRendererInfo>

Promise用于返回音頻渲染器信息。

示例:

  1. audioRenderer.getRendererInfo().then((rendererInfo) => {
  2. console.info('Renderer GetRendererInfo:');
  3. console.info(`Renderer content: ${rendererInfo.content}`);
  4. console.info(`Renderer usage: ${rendererInfo.usage}`);
  5. console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
  6. }).catch((err) => {
  7. console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
  8. });

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

獲取音頻流信息,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioStreamInfo>

回調(diào)返回音頻流信息。

示例:

  1. audioRenderer.getStreamInfo((err, streamInfo) => {
  2. console.info('Renderer GetStreamInfo:');
  3. console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  4. console.info(`Renderer channel: ${streamInfo.channels}`);
  5. console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  6. console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
  7. });

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

獲取音頻流信息,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<AudioStreamInfo>

Promise返回音頻流信息.

示例:

  1. audioRenderer.getStreamInfo().then((streamInfo) => {
  2. console.info('Renderer GetStreamInfo:');
  3. console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  4. console.info(`Renderer channel: ${streamInfo.channels}`);
  5. console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  6. console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
  7. }).catch((err) => {
  8. console.error(`ERROR: ${err}`);
  9. });

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

獲取音頻流id,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

回調(diào)返回音頻流id。

示例:

  1. audioRenderer.getAudioStreamId((err, streamid) => {
  2. console.info(`Renderer GetStreamId: ${streamid}`);
  3. });

getAudioStreamId9+

getAudioStreamId(): Promise<number>

獲取音頻流id,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<number>

Promise返回音頻流id。

示例:

  1. audioRenderer.getAudioStreamId().then((streamid) => {
  2. console.info(`Renderer getAudioStreamId: ${streamid}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

start8+

start(callback: AsyncCallback<void>): void

啟動音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

回調(diào)函數(shù)。

示例:

  1. audioRenderer.start((err) => {
  2. if (err) {
  3. console.error('Renderer start failed.');
  4. } else {
  5. console.info('Renderer start success.');
  6. }
  7. });

start8+

start(): Promise<void>

啟動音頻渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<void>

Promise方式異步返回結(jié)果。

示例:

  1. audioRenderer.start().then(() => {
  2. console.info('Renderer started');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

pause8+

pause(callback: AsyncCallback<void>): void

暫停渲染。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

返回回調(diào)的結(jié)果。

示例:

  1. audioRenderer.pause((err) => {
  2. if (err) {
  3. console.error('Renderer pause failed');
  4. } else {
  5. console.info('Renderer paused.');
  6. }
  7. });

pause8+

pause(): Promise<void>

暫停渲染。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<void>

Promise方式異步返回結(jié)果。

示例:

  1. audioRenderer.pause().then(() => {
  2. console.info('Renderer paused');
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

drain8+

drain(callback: AsyncCallback<void>): void

檢查緩沖區(qū)是否已被耗盡。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

返回回調(diào)的結(jié)果。

示例:

  1. audioRenderer.drain((err) => {
  2. if (err) {
  3. console.error('Renderer drain failed');
  4. } else {
  5. console.info('Renderer drained.');
  6. }
  7. });

drain8+

drain(): Promise<void>

檢查緩沖區(qū)是否已被耗盡。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<void>

Promise方式異步返回結(jié)果。

示例:

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

stop8+

stop(callback: AsyncCallback<void>): void

停止渲染。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

返回回調(diào)的結(jié)果。

示例:

  1. audioRenderer.stop((err) => {
  2. if (err) {
  3. console.error('Renderer stop failed');
  4. } else {
  5. console.info('Renderer stopped.');
  6. }
  7. });

stop8+

stop(): Promise<void>

停止渲染。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<void>

Promise方式異步返回結(jié)果。

示例:

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

release8+

release(callback: AsyncCallback<void>): void

釋放音頻渲染器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

返回回調(diào)的結(jié)果。

示例:

  1. audioRenderer.release((err) => {
  2. if (err) {
  3. console.error('Renderer release failed');
  4. } else {
  5. console.info('Renderer released.');
  6. }
  7. });

release8+

release(): Promise<void>

釋放渲染器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<void>

Promise方式異步返回結(jié)果。

示例:

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

write8+

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

寫入緩沖區(qū)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

buffer

ArrayBuffer

要寫入緩沖區(qū)的數(shù)據(jù)。

callback

AsyncCallback<number>

回調(diào)如果成功,返回寫入的字節(jié)數(shù),否則返回errorcode。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data)=> {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. console.info(`Buffer size: ${bufferSize}`);
  9. let context = featureAbility.getContext();
  10. let path;
  11. async function getCacheDir(){
  12. path = await context.getCacheDir();
  13. }
  14. let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  15. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  16. let stat = await fs.stat(path);
  17. let buf = new ArrayBuffer(bufferSize);
  18. let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  19. for (let i = 0;i < len; i++) {
  20. let options = {
  21. offset: i * bufferSize,
  22. length: bufferSize
  23. }
  24. let readsize = await fs.read(file.fd, buf, options)
  25. let writeSize = await new Promise((resolve,reject)=>{
  26. audioRenderer.write(buf,(err,writeSize)=>{
  27. if(err){
  28. reject(err)
  29. }else{
  30. resolve(writeSize)
  31. }
  32. })
  33. })
  34. }

write8+

write(buffer: ArrayBuffer): Promise<number>

寫入緩沖區(qū)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<number>

Promise返回結(jié)果,如果成功,返回寫入的字節(jié)數(shù),否則返回errorcode。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. console.info(`BufferSize: ${bufferSize}`);
  9. let context = featureAbility.getContext();
  10. let path;
  11. async function getCacheDir(){
  12. path = await context.getCacheDir();
  13. }
  14. let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
  15. let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
  16. let stat = await fs.stat(path);
  17. let buf = new ArrayBuffer(bufferSize);
  18. let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  19. for (let i = 0;i < len; i++) {
  20. let options = {
  21. offset: i * bufferSize,
  22. length: bufferSize
  23. }
  24. let readsize = await fs.read(file.fd, buf, options)
  25. try{
  26. let writeSize = await audioRenderer.write(buf);
  27. } catch(err) {
  28. console.error(`audioRenderer.write err: ${err}`);
  29. }
  30. }

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

獲取時間戳(從 1970 年 1 月 1 日開始)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

回調(diào)返回時間戳。

示例:

  1. audioRenderer.getAudioTime((err, timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. });

getAudioTime8+

getAudioTime(): Promise<number>

獲取時間戳(從 1970 年 1 月 1 日開始)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

描述

Promise<number>

Promise回調(diào)返回時間戳。

示例:

  1. audioRenderer.getAudioTime().then((timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

獲取音頻渲染器的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

回調(diào)返回緩沖區(qū)大小。

示例:

  1. let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
  2. if (err) {
  3. console.error('getBufferSize error');
  4. }
  5. });

getBufferSize8+

getBufferSize(): Promise<number>

獲取音頻渲染器的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<number>

promise回調(diào)返回緩沖區(qū)大小。

示例:

  1. let bufferSize;
  2. audioRenderer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
  7. });

setRenderRate8+

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

設(shè)置音頻渲染速率。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

rate

AudioRendererRate

渲染的速率。

callback

AsyncCallback<void>

用于返回執(zhí)行結(jié)果的回調(diào)。

示例:

  1. audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
  2. if (err) {
  3. console.error('Failed to set params');
  4. } else {
  5. console.info('Callback invoked to indicate a successful render rate setting.');
  6. }
  7. });

setRenderRate8+

setRenderRate(rate: AudioRendererRate): Promise<void>

設(shè)置音頻渲染速率。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

rate

AudioRendererRate

渲染的速率。

返回值:

類型

說明

Promise<void>

Promise用于返回執(zhí)行結(jié)果。

示例:

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

getRenderRate8+

getRenderRate(callback: AsyncCallback<AudioRendererRate>): void

獲取當(dāng)前渲染速率。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioRendererRate>

回調(diào)返回渲染速率。

示例:

  1. audioRenderer.getRenderRate((err, renderrate) => {
  2. console.info(`getRenderRate: ${renderrate}`);
  3. });

getRenderRate8+

getRenderRate(): Promise<AudioRendererRate>

獲取當(dāng)前渲染速率。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

返回值:

類型

說明

Promise<AudioRendererRate>

Promise回調(diào)返回渲染速率。

示例:

  1. audioRenderer.getRenderRate().then((renderRate) => {
  2. console.info(`getRenderRate: ${renderRate}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

setInterruptMode9+

setInterruptMode(mode: InterruptMode): Promise<void>

設(shè)置應(yīng)用的焦點模型。使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt

參數(shù):

參數(shù)名

類型

必填

說明

mode

InterruptMode

焦點模型。

返回值:

類型

說明

Promise<void>

以Promise對象返回結(jié)果,設(shè)置成功時返回undefined,否則返回error。

示例:

  1. let mode = 0;
  2. audioRenderer.setInterruptMode(mode).then(data=>{
  3. console.info('setInterruptMode Success!');
  4. }).catch((err) => {
  5. console.error(`setInterruptMode Fail: ${err}`);
  6. });

setInterruptMode9+

setInterruptMode(mode: InterruptMode, callback: AsyncCallback<void>): void

設(shè)置應(yīng)用的焦點模型。使用Callback回調(diào)返回執(zhí)行結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt

參數(shù):

參數(shù)名

類型

必填

說明

mode

InterruptMode

焦點模型。

callback

AsyncCallback<void>

回調(diào)返回執(zhí)行結(jié)果。

示例:

  1. let mode = 1;
  2. audioRenderer.setInterruptMode(mode, (err, data)=>{
  3. if(err){
  4. console.error(`setInterruptMode Fail: ${err}`);
  5. }
  6. console.info('setInterruptMode Success!');
  7. });

setVolume9+

setVolume(volume: number): Promise<void>

設(shè)置應(yīng)用的音量。使用Promise異步回調(diào)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

volume

number

音量值范圍為0.0-1.0。

返回值:

類型

說明

Promise<void>

以Promise對象返回結(jié)果,設(shè)置成功時返回undefined,否則返回error。

示例:

  1. audioRenderer.setVolume(0.5).then(data=>{
  2. console.info('setVolume Success!');
  3. }).catch((err) => {
  4. console.error(`setVolume Fail: ${err}`);
  5. });

setVolume9+

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

設(shè)置應(yīng)用的音量。使用Callback回調(diào)返回執(zhí)行結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

volume

number

音量值范圍為0.0-1.0。

callback

AsyncCallback<void>

回調(diào)返回執(zhí)行結(jié)果。

示例:

  1. audioRenderer.setVolume(0.5, (err, data)=>{
  2. if(err){
  3. console.error(`setVolume Fail: ${err}`);
  4. }
  5. console.info('setVolume Success!');
  6. });

on('audioInterrupt')9+

on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void

監(jiān)聽音頻中斷事件。使用callback獲取中斷事件。

on('interrupt')一致,均用于監(jiān)聽焦點變化,AudioRenderer對象start事件發(fā)生時主動獲取焦點,在pause、stop等事件發(fā)生時會主動釋放焦點,不需要開發(fā)者主動發(fā)起獲取焦點或釋放焦點的申請。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'audioInterrupt'(中斷事件被觸發(fā),音頻播放被中斷。)

callback

Callback<InterruptEvent>

被監(jiān)聽的中斷事件的回調(diào)。

錯誤碼:

以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。

錯誤碼ID

錯誤信息

6800101

if input parameter value error

示例:

  1. let isPlay;
  2. let started;
  3. onAudioInterrupt();
  4. async function onAudioInterrupt(){
  5. audioRenderer.on('audioInterrupt', async(interruptEvent) => {
  6. if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
  7. switch (interruptEvent.hintType) {
  8. case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
  9. console.info('Force paused. Stop writing');
  10. isPlay = false;
  11. break;
  12. case audio.InterruptHint.INTERRUPT_HINT_STOP:
  13. console.info('Force stopped. Stop writing');
  14. isPlay = false;
  15. break;
  16. }
  17. } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
  18. switch (interruptEvent.hintType) {
  19. case audio.InterruptHint.INTERRUPT_HINT_RESUME:
  20. console.info('Resume force paused renderer or ignore');
  21. await audioRenderer.start().then(async function () {
  22. console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
  23. started = true;
  24. }).catch((err) => {
  25. console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
  26. started = false;
  27. });
  28. if (started) {
  29. isPlay = true;
  30. console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
  31. } else {
  32. console.error('AudioInterruptMusic Renderer start failed');
  33. }
  34. break;
  35. case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
  36. console.info('Choose to pause or ignore');
  37. if (isPlay == true) {
  38. isPlay == false;
  39. console.info('AudioInterruptMusic: Media PAUSE : TRUE');
  40. } else {
  41. isPlay = true;
  42. console.info('AudioInterruptMusic: Media PLAY : TRUE');
  43. }
  44. break;
  45. }
  46. }
  47. });
  48. }

on('markReach')8+

on(type: "markReach", frame: number, callback: Callback<number>): void

訂閱到達標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達到 frame 參數(shù)的值時,回調(diào)被調(diào)用。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'markReach'。

frame

number

觸發(fā)事件的幀數(shù)。 該值必須大于 0。

callback

Callback<number>

觸發(fā)事件時調(diào)用的回調(diào)。

示例:

  1. audioRenderer.on('markReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('markReach') 8+

off(type: 'markReach'): void

取消訂閱標(biāo)記事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

要取消訂閱事件的類型。支持的事件為:'markReach'。

示例:

  1. audioRenderer.off('markReach');

on('periodReach') 8+

on(type: "periodReach", frame: number, callback: Callback<number>): void

訂閱到達標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達到 frame 參數(shù)的值時,觸發(fā)回調(diào)并返回設(shè)定的值。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'periodReach'。

frame

number

觸發(fā)事件的幀數(shù)。 該值必須大于 0。

callback

Callback<number>

觸發(fā)事件時調(diào)用的回調(diào)。

示例:

  1. audioRenderer.on('periodReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('periodReach') 8+

off(type: 'periodReach'): void

取消訂閱標(biāo)記事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

要取消訂閱事件的類型。支持的事件為:'periodReach'。

示例:

  1. audioRenderer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback<AudioState>): void

訂閱監(jiān)聽狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'stateChange'。

callback

Callback<AudioState>

返回監(jiān)聽的狀態(tài)。

示例:

  1. audioRenderer.on('stateChange', (state) => {
  2. if (state == 1) {
  3. console.info('audio renderer state is: STATE_PREPARED');
  4. }
  5. if (state == 2) {
  6. console.info('audio renderer state is: STATE_RUNNING');
  7. }
  8. });

AudioCapturer8+

提供音頻采集的相關(guān)接口。在調(diào)用AudioCapturer的接口前,需要先通過createAudioCapturer創(chuàng)建實例。

屬性

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

名稱

類型

可讀

可寫

說明

state8+

AudioState

音頻采集器狀態(tài)。

示例:

  1. let state = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void

獲取采集器信息。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioCapturerInfo>

使用callback方式異步返回采集器信息。

示例:

  1. audioCapturer.getCapturerInfo((err, capturerInfo) => {
  2. if (err) {
  3. console.error('Failed to get capture info');
  4. } else {
  5. console.info('Capturer getCapturerInfo:');
  6. console.info(`Capturer source: ${capturerInfo.source}`);
  7. console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
  8. }
  9. });

getCapturerInfo8+

getCapturerInfo(): Promise<AudioCapturerInfo>

獲取采集器信息。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<AudioCapturerInfo>

使用Promise方式異步返回采集器信息。

示例:

  1. audioCapturer.getCapturerInfo().then((audioParamsGet) => {
  2. if (audioParamsGet != undefined) {
  3. console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
  4. console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
  5. console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
  6. } else {
  7. console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
  8. console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
  9. }
  10. }).catch((err) => {
  11. console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
  12. });

getStreamInfo8+

getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void

獲取采集器流信息。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<AudioStreamInfo>

使用callback方式異步返回流信息。

示例:

  1. audioCapturer.getStreamInfo((err, streamInfo) => {
  2. if (err) {
  3. console.error('Failed to get stream info');
  4. } else {
  5. console.info('Capturer GetStreamInfo:');
  6. console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
  7. console.info(`Capturer channel: ${streamInfo.channels}`);
  8. console.info(`Capturer format: ${streamInfo.sampleFormat}`);
  9. console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
  10. }
  11. });

getStreamInfo8+

getStreamInfo(): Promise<AudioStreamInfo>

獲取采集器流信息。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<AudioStreamInfo>

使用Promise方式異步返回流信息。

示例:

  1. audioCapturer.getStreamInfo().then((audioParamsGet) => {
  2. console.info('getStreamInfo:');
  3. console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  4. console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  5. console.info(`channels: ${audioParamsGet.channels}`);
  6. console.info(`encodingType: ${audioParamsGet.encodingType}`);
  7. }).catch((err) => {
  8. console.error(`getStreamInfo :ERROR: ${err}`);
  9. });

getAudioStreamId9+

getAudioStreamId(callback: AsyncCallback<number>): void

獲取音頻流id,使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

回調(diào)返回音頻流id。

示例:

  1. audioCapturer.getAudioStreamId((err, streamid) => {
  2. console.info(`audioCapturer GetStreamId: ${streamid}`);
  3. });

getAudioStreamId9+

getAudioStreamId(): Promise<number>

獲取音頻流id,使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<number>

Promise返回音頻流id。

示例:

  1. audioCapturer.getAudioStreamId().then((streamid) => {
  2. console.info(`audioCapturer getAudioStreamId: ${streamid}`);
  3. }).catch((err) => {
  4. console.error(`ERROR: ${err}`);
  5. });

start8+

start(callback: AsyncCallback<void>): void

啟動音頻采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

使用callback方式異步返回結(jié)果。

示例:

  1. audioCapturer.start((err) => {
  2. if (err) {
  3. console.error('Capturer start failed.');
  4. } else {
  5. console.info('Capturer start success.');
  6. }
  7. });

start8+

start(): Promise<void>

啟動音頻采集器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<void>

使用Promise方式異步返回結(jié)果。

示例:

  1. audioCapturer.start().then(() => {
  2. console.info('AudioFrameworkRecLog: ---------START---------');
  3. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  4. console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
  5. console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  6. if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
  7. console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
  8. }
  9. }).catch((err) => {
  10. console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
  11. });

stop8+

stop(callback: AsyncCallback<void>): void

停止采集。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

使用callback方式異步返回結(jié)果。

示例:

  1. audioCapturer.stop((err) => {
  2. if (err) {
  3. console.error('Capturer stop failed');
  4. } else {
  5. console.info('Capturer stopped.');
  6. }
  7. });

stop8+

stop(): Promise<void>

停止采集。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<void>

使用Promise方式異步返回結(jié)果。

示例:

  1. audioCapturer.stop().then(() => {
  2. console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
  3. console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
  4. if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
  5. console.info('AudioFrameworkRecLog: State is Stopped:');
  6. }
  7. }).catch((err) => {
  8. console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
  9. });

release8+

release(callback: AsyncCallback<void>): void

釋放采集器。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

使用callback方式異步返回結(jié)果。

示例:

  1. audioCapturer.release((err) => {
  2. if (err) {
  3. console.error('capturer release failed');
  4. } else {
  5. console.info('capturer released.');
  6. }
  7. });

release8+

release(): Promise<void>

釋放采集器。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<void>

使用Promise方式異步返回結(jié)果。

示例:

  1. let stateFlag;
  2. audioCapturer.release().then(() => {
  3. console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
  4. console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
  5. console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
  6. console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
  7. }).catch((err) => {
  8. console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
  9. });

read8+

read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer>): void

讀入緩沖區(qū)。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

size

number

讀入的字節(jié)數(shù)。

isBlockingRead

boolean

是否阻塞讀操作。

callback

AsyncCallback<ArrayBuffer>

使用callback方式異步返回緩沖區(qū)。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
  7. });
  8. audioCapturer.read(bufferSize, true, async(err, buffer) => {
  9. if (!err) {
  10. console.info('Success in reading the buffer data');
  11. }
  12. });

read8+

read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer>

讀入緩沖區(qū)。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

size

number

讀入的字節(jié)數(shù)。

isBlockingRead

boolean

是否阻塞讀操作。

返回值:

類型

說明

Promise<ArrayBuffer>

如果操作成功,返回讀取的緩沖區(qū)數(shù)據(jù);否則返回錯誤代碼。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
  7. });
  8. console.info(`Buffer size: ${bufferSize}`);
  9. audioCapturer.read(bufferSize, true).then((buffer) => {
  10. console.info('buffer read successfully');
  11. }).catch((err) => {
  12. console.info(`ERROR : ${err}`);
  13. });

getAudioTime8+

getAudioTime(callback: AsyncCallback<number>): void

獲取時間戳(從1970年1月1日開始),單位為納秒。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

使用callback方式異步返回結(jié)果。

示例:

  1. audioCapturer.getAudioTime((err, timestamp) => {
  2. console.info(`Current timestamp: ${timestamp}`);
  3. });

getAudioTime8+

getAudioTime(): Promise<number>

獲取時間戳(從1970年1月1日開始),單位為納秒。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<number>

使用Promise方式異步返回結(jié)果。

示例:

  1. audioCapturer.getAudioTime().then((audioTime) => {
  2. console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
  3. }).catch((err) => {
  4. console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
  5. });

getBufferSize8+

getBufferSize(callback: AsyncCallback<number>): void

獲取采集器合理的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

使用callback方式異步返回緩沖區(qū)大小。

示例:

  1. audioCapturer.getBufferSize((err, bufferSize) => {
  2. if (!err) {
  3. console.info(`BufferSize : ${bufferSize}`);
  4. audioCapturer.read(bufferSize, true).then((buffer) => {
  5. console.info(`Buffer read is ${buffer}`);
  6. }).catch((err) => {
  7. console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
  8. });
  9. }
  10. });

getBufferSize8+

getBufferSize(): Promise<number>

獲取采集器合理的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型

說明

Promise<number>

使用Promise方式異步返回緩沖區(qū)大小。

示例:

  1. let bufferSize;
  2. audioCapturer.getBufferSize().then((data) => {
  3. console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
  4. bufferSize = data;
  5. }).catch((err) => {
  6. console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
  7. });

on('markReach')8+

on(type: "markReach", frame: number, callback: Callback<number>): void

訂閱標(biāo)記到達的事件。 當(dāng)采集的幀數(shù)達到 frame 參數(shù)的值時,回調(diào)被觸發(fā)。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'markReach'。

frame

number

觸發(fā)事件的幀數(shù)。 該值必須大于0。

callback

Callback<number>

使用callback方式異步返回被觸發(fā)事件的回調(diào)。

示例:

  1. audioCapturer.on('markReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('markReach')8+

off(type: 'markReach'): void

取消訂閱標(biāo)記到達的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

取消事件回調(diào)類型,支持的事件為:'markReach'。

示例:

  1. audioCapturer.off('markReach');

on('periodReach')8+

on(type: "periodReach", frame: number, callback: Callback<number>): void

訂閱到達標(biāo)記的事件。 當(dāng)采集的幀數(shù)達到 frame 參數(shù)的值時,觸發(fā)回調(diào)并返回設(shè)定的值。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'periodReach'。

frame

number

觸發(fā)事件的幀數(shù)。 該值必須大于0。

callback

Callback<number>

使用callback方式異步返回被觸發(fā)事件的回調(diào)

示例:

  1. audioCapturer.on('periodReach', 1000, (position) => {
  2. if (position == 1000) {
  3. console.info('ON Triggered successfully');
  4. }
  5. });

off('periodReach')8+

off(type: 'periodReach'): void

取消訂閱標(biāo)記到達的事件。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

取消事件回調(diào)類型,支持的事件為:'periodReach'。

示例:

  1. audioCapturer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback<AudioState>): void

訂閱監(jiān)聽狀態(tài)變化。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer

參數(shù):

參數(shù)名

類型

必填

說明

type

string

事件回調(diào)類型,支持的事件為:'stateChange'。

callback

Callback<AudioState>

返回監(jiān)聽的狀態(tài)。

示例:

  1. audioCapturer.on('stateChange', (state) => {
  2. if (state == 1) {
  3. console.info('audio capturer state is: STATE_PREPARED');
  4. }
  5. if (state == 2) {
  6. console.info('audio capturer state is: STATE_RUNNING');
  7. }
  8. });

ActiveDeviceType(deprecated)

枚舉,活躍設(shè)備類型。

說明

從 API version 9 開始廢棄,建議使用CommunicationDeviceType替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device

名稱

說明

SPEAKER

2

揚聲器。

BLUETOOTH_SCO

7

藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。

InterruptActionType(deprecated)

枚舉,中斷事件返回類型。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

說明

TYPE_ACTIVATED

0

表示觸發(fā)焦點事件。

TYPE_INTERRUPT

1

表示音頻打斷事件。

AudioInterrupt(deprecated)

音頻監(jiān)聽事件傳入的參數(shù)。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

必填

說明

streamUsage

StreamUsage

音頻流使用類型。

contentType

ContentType

音頻打斷媒體類型。

pauseWhenDucked

boolean

音頻打斷時是否可以暫停音頻播放(true表示音頻播放可以在音頻打斷期間暫停,false表示相反)。

InterruptAction(deprecated)

音頻打斷/獲取焦點事件的回調(diào)方法。

說明

從 API version 7 開始支持,從 API version 9 開始廢棄。建議使用InterruptEvent替代。

系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer

名稱

類型

必填

說明

actionType

InterruptActionType

事件返回類型。TYPE_ACTIVATED為焦點觸發(fā)事件,TYPE_INTERRUPT為音頻打斷事件。

type

InterruptType

打斷事件類型。

hint

InterruptHint

打斷事件提示。

activated

boolean

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號