音頻管理提供管理音頻的一些基礎(chǔ)能力,包括對音頻音量、音頻設(shè)備的管理,以及對音頻數(shù)據(jù)的采集和渲染等。
該模塊提供以下音頻相關(guān)的常用功能:
本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
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 |
示例:
- import audio from '@ohos.multimedia.audio';
- const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
- const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;
getAudioManager(): AudioManager
獲取音頻管理器。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
返回值:
類型 | 說明 |
---|---|
音頻管理類。 |
示例:
- let audioManager = audio.getAudioManager();
createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback<AudioRenderer>): void
獲取音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | 是 | 配置渲染器。 | |
callback | AsyncCallback<AudioRenderer> | 是 | 音頻渲染器對象。 |
示例:
- import featureAbility from '@ohos.ability.featureAbility';
- import fs from '@ohos.file.fs';
- import audio from '@ohos.multimedia.audio';
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- audio.createAudioRenderer(audioRendererOptions,(err, data) => {
- if (err) {
- console.error(`AudioRenderer Created: Error: ${err}`);
- } else {
- console.info('AudioRenderer Created: Success: SUCCESS');
- let audioRenderer = data;
- }
- });
createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer>
獲取音頻渲染器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | 是 | 配置渲染器。 |
返回值:
類型 | 說明 |
---|---|
Promise<AudioRenderer> | 音頻渲染器對象。 |
示例:
- import featureAbility from '@ohos.ability.featureAbility';
- import fs from '@ohos.file.fs';
- import audio from '@ohos.multimedia.audio';
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
- rendererFlags: 0
- }
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer;
- audio.createAudioRenderer(audioRendererOptions).then((data) => {
- audioRenderer = data;
- console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
- }).catch((err) => {
- console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
- });
createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer>): void
獲取音頻采集器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
需要權(quán)限: ohos.permission.MICROPHONE
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | 是 | 配置音頻采集器。 | |
callback | AsyncCallback<AudioCapturer> | 是 | 音頻采集器對象。 |
示例:
- import audio from '@ohos.multimedia.audio';
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
- channels: audio.AudioChannel.CHANNEL_2,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioCapturerInfo = {
- source: audio.SourceType.SOURCE_TYPE_MIC,
- capturerFlags: 0
- }
- let audioCapturerOptions = {
- streamInfo: audioStreamInfo,
- capturerInfo: audioCapturerInfo
- }
- audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
- if (err) {
- console.error(`AudioCapturer Created : Error: ${err}`);
- } else {
- console.info('AudioCapturer Created : Success : SUCCESS');
- let audioCapturer = data;
- }
- });
createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer>
獲取音頻采集器。使用promise 方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
需要權(quán)限: ohos.permission.MICROPHONE
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | 是 | 配置音頻采集器。 |
返回值:
類型 | 說明 |
---|---|
Promise<AudioCapturer> | 音頻采集器對象 |
示例:
- import audio from '@ohos.multimedia.audio';
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
- channels: audio.AudioChannel.CHANNEL_2,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioCapturerInfo = {
- source: audio.SourceType.SOURCE_TYPE_MIC,
- capturerFlags: 0
- }
- let audioCapturerOptions = {
- streamInfo: audioStreamInfo,
- capturerInfo: audioCapturerInfo
- }
- let audioCapturer;
- audio.createAudioCapturer(audioCapturerOptions).then((data) => {
- audioCapturer = data;
- console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
- }).catch((err) => {
- console.error(`AudioCapturer Created : ERROR : ${err}`);
- });
枚舉,音頻流類型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
名稱 | 值 | 說明 |
---|---|---|
VOICE_CALL8+ | 0 | 語音電話。 |
RINGTONE | 2 | 鈴聲。 |
MEDIA | 3 | 媒體。 |
VOICE_ASSISTANT8+ | 9 | 語音助手。 |
枚舉,焦點模型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt
名稱 | 值 | 說明 |
---|---|---|
SHARE_MODE | 0 | 共享焦點模式。 |
INDEPENDENT_MODE | 1 | 獨立焦點模式。 |
枚舉,可獲取的設(shè)備種類。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 值 | 說明 |
---|---|---|
OUTPUT_DEVICES_FLAG | 1 | 輸出設(shè)備。 |
INPUT_DEVICES_FLAG | 2 | 輸入設(shè)備。 |
ALL_DEVICES_FLAG | 3 | 所有設(shè)備。 |
枚舉,設(shè)備角色。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 值 | 說明 |
---|---|---|
INPUT_DEVICE | 1 | 輸入設(shè)備角色。 |
OUTPUT_DEVICE | 2 | 輸出設(shè)備角色。 |
枚舉,設(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è)備類型。 |
枚舉,用于通信的可用設(shè)備類型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
名稱 | 值 | 說明 |
---|---|---|
SPEAKER | 2 | 揚聲器。 |
枚舉,鈴聲模式。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
名稱 | 值 | 說明 |
---|---|---|
RINGER_MODE_SILENT | 0 | 靜音模式。 |
RINGER_MODE_VIBRATE | 1 | 震動模式。 |
RINGER_MODE_NORMAL | 2 | 響鈴模式。 |
枚舉,音頻采樣格式。
系統(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ù)實際情況使用。 |
枚舉,音頻錯誤碼。
系統(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)處理異常。 |
枚舉, 音頻聲道。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 值 | 說明 |
---|---|---|
CHANNEL_1 | 0x1 << 0 | 第一聲道。 |
CHANNEL_2 | 0x1 << 1 | 第二聲道。 |
枚舉,音頻采樣率,具體設(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。 |
枚舉,音頻編碼類型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 值 | 說明 |
---|---|---|
ENCODING_TYPE_INVALID | -1 | 無效。 |
ENCODING_TYPE_RAW | 0 | PCM編碼。 |
枚舉,音頻內(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 | 鈴聲。 |
枚舉,音頻流使用類型。
系統(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 | 通知鈴聲。 |
枚舉,音頻狀態(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)。 |
枚舉,音頻渲染速度。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 值 | 說明 |
---|---|---|
RENDER_RATE_NORMAL | 0 | 正常速度。 |
RENDER_RATE_DOUBLE | 1 | 2倍速。 |
RENDER_RATE_HALF | 2 | 0.5倍數(shù)。 |
枚舉,中斷類型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 值 | 說明 |
---|---|---|
INTERRUPT_TYPE_BEGIN | 1 | 音頻播放中斷事件開始。 |
INTERRUPT_TYPE_END | 2 | 音頻播放中斷事件結(jié)束。 |
枚舉,強制打斷類型。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 值 | 說明 |
---|---|---|
INTERRUPT_FORCE | 0 | 由系統(tǒng)進行操作,強制打斷音頻播放。 |
INTERRUPT_SHARE | 1 | 由應(yīng)用進行操作,可以選擇打斷或忽略。 |
枚舉,中斷提示。
系統(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ù)。 |
音頻流信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
samplingRate | 是 | 音頻文件的采樣率。 | |
channels | 是 | 音頻文件的通道數(shù)。 | |
sampleFormat | 是 | 音頻采樣格式。 | |
encodingType | 是 | 音頻編碼格式。 |
音頻渲染器信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
content | 是 | 媒體類型。 | |
usage | 是 | 音頻流使用類型。 | |
rendererFlags | number | 是 | 音頻渲染器標(biāo)志。 |
音頻渲染器選項信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
streamInfo | 是 | 表示音頻流信息。 | |
rendererInfo | 是 | 表示渲染器信息。 |
播放中斷時,應(yīng)用接收的中斷事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
eventType | 是 | 中斷事件類型,開始或是結(jié)束。 | |
forceType | 是 | 操作是由系統(tǒng)執(zhí)行或是由應(yīng)用程序執(zhí)行。 | |
hintType | 是 | 中斷提示。 |
音量改變時,應(yīng)用接收的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 | |
volume | number | 是 | 音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。 |
updateUi | boolean | 是 | 在UI中顯示音量變化。 |
麥克風(fēng)狀態(tài)變化時,應(yīng)用接收的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
mute | boolean | 是 | 回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),true為靜音,false為非靜音。 |
描述設(shè)備連接狀態(tài)變化和設(shè)備信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
type | 是 | 設(shè)備連接狀態(tài)變化。 | |
deviceDescriptors | 是 | 設(shè)備信息。 |
枚舉,設(shè)備連接狀態(tài)變化。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 值 | 說明 |
---|---|---|
CONNECT | 0 | 設(shè)備連接。 |
DISCONNECT | 1 | 斷開設(shè)備連接。 |
音頻采集器選項信息。
系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Capturer
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
streamInfo | 是 | 表示音頻流信息。 | |
capturerInfo | 是 | 表示采集器信息。 |
描述音頻采集器信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
source | 是 | 音源類型。 | |
capturerFlags | number | 是 | 音頻采集器標(biāo)志。 |
枚舉,音源類型。
系統(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 | 語音通話場景的音頻源。 |
枚舉,音頻場景。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
名稱 | 值 | 說明 |
---|---|---|
AUDIO_SCENE_DEFAULT | 0 | 默認(rèn)音頻場景。 |
AUDIO_SCENE_VOICE_CHAT | 3 | 語音聊天模式。 |
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è)置成功或失敗。 |
示例:
- audioManager.setAudioParameter('key_example', 'value_example', (err) => {
- if (err) {
- console.error(`Failed to set the audio parameter. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate a successful setting of the audio parameter.');
- });
setAudioParameter(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è)置成功或失敗。 |
示例:
- audioManager.setAudioParameter('key_example', 'value_example').then(() => {
- console.info('Promise returned to indicate a successful setting of the audio parameter.');
- });
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ù)的值。 |
示例:
- audioManager.getAudioParameter('key_example', (err, value) => {
- if (err) {
- console.error(`Failed to obtain the value of the audio parameter. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
- });
getAudioParameter(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ù)的值。 |
示例:
- audioManager.getAudioParameter('key_example').then((value) => {
- console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
- });
getAudioScene(callback: AsyncCallback<AudioScene>): void
獲取音頻場景模式,使用callback方式返回異步結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioScene> | 是 | 用于返回音頻場景模式的回調(diào)。 |
示例:
- audioManager.getAudioScene((err, value) => {
- if (err) {
- console.error(`Failed to obtain the audio scene mode.? ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
- });
getAudioScene(): Promise<AudioScene>
獲取音頻場景模式,使用Promise方式返回異步結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
返回值:
類型 | 說明 |
---|---|
Promise<AudioScene> | 用于返回音頻場景模式的回調(diào)。 |
示例:
- audioManager.getAudioScene().then((value) => {
- console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
- }).catch ((err) => {
- console.error(`Failed to obtain the audio scene mode ${err}`);
- });
getVolumeManager(): AudioVolumeManager
獲取音頻音量管理器。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
示例:
- let audioVolumeManager = audioManager.getVolumeManager();
getStreamManager(): AudioStreamManager
獲取音頻流管理器。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
示例:
- let audioStreamManager = audioManager.getStreamManager();
getRoutingManager(): AudioRoutingManager
獲取音頻路由設(shè)備管理器。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
示例:
- let audioRoutingManager = audioManager.getRoutingManager();
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 | 是 | 音量流類型。 | |
volume | number | 是 | 音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。 |
callback | AsyncCallback<void> | 是 | 回調(diào)表示成功還是失敗。 |
示例:
- audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
- if (err) {
- console.error(`Failed to set the volume. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate a successful volume setting.');
- });
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 | 是 | 音量流類型。 | |
volume | number | 是 | 音量等級,可設(shè)置范圍通過getMinVolume和getMaxVolume獲取。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise回調(diào)表示成功還是失敗。 |
示例:
- audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
- console.info('Promise returned to indicate a successful volume setting.');
- });
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 | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回音量大小。 |
示例:
- audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the volume. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the volume is obtained.');
- });
getVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的音量,使用Promise方式異步返回結(jié)果。
從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getVolume替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回音量大小。 |
示例:
- audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
- });
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 | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回最小音量。 |
示例:
- audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the minimum volume. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
- });
getMinVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的最小音量,使用Promise方式異步返回結(jié)果。
從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMinVolume替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回最小音量。 |
示例:
- audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
- });
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 | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回最大音量大小。 |
示例:
- audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the maximum volume. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
- });
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的最大音量,使用Promise方式異步返回結(jié)果。
從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的getMaxVolume替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回最大音量大小。 |
示例:
- audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
- console.info('Promised returned to indicate that the maximum volume is obtained.');
- });
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 | 是 | 音量流類型。 | |
mute | boolean | 是 | 靜音狀態(tài),true為靜音,false為非靜音。 |
callback | AsyncCallback<void> | 是 | 回調(diào)表示成功還是失敗。 |
示例:
- audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
- if (err) {
- console.error(`Failed to mute the stream. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the stream is muted.');
- });
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 | 是 | 音量流類型。 | |
mute | boolean | 是 | 靜音狀態(tài),true為靜音,false為非靜音。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise回調(diào)表示成功還是失敗。 |
示例:
- audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
- console.info('Promise returned to indicate that the stream is muted.');
- });
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 | 是 | 音量流類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。 |
示例:
- audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the mute status. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
- });
isMute(volumeType: AudioVolumeType): Promise<boolean>
獲取指定音量流是否被靜音,使用Promise方式異步返回結(jié)果。
從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioVolumeGroupManager中的isMute替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean> | Promise回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。 |
示例:
- audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
- });
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 | 是 | 音量流類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。 |
示例:
- audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the stream. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
- });
isActive(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 | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean> | Promise回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。 |
示例:
- audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
- });
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 | 是 | 音頻鈴聲模式。 | |
callback | AsyncCallback<void> | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
- if (err) {
- console.error(`Failed to set the ringer mode.? ${err}`);
- return;
- }
- console.info('Callback invoked to indicate a successful setting of the ringer mode.');
- });
setRingerMode(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 | 是 | 音頻鈴聲模式。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
- console.info('Promise returned to indicate a successful setting of the ringer mode.');
- });
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)的鈴聲模式。 |
示例:
- audioManager.getRingerMode((err, value) => {
- if (err) {
- console.error(`Failed to obtain the ringer mode.? ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
- });
getRingerMode(): 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)的鈴聲模式。 |
示例:
- audioManager.getRingerMode().then((value) => {
- console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
- });
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 | 是 | 設(shè)備類型的flag。 | |
callback | AsyncCallback<AudioDeviceDescriptors> | 是 | 回調(diào),返回設(shè)備列表。 |
示例:
- audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the device list. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the device list is obtained.');
- });
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。
從 API version 7 開始支持,從 API version 9 開始廢棄,建議使用AudioRoutingManager中的getDevices替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceFlag | 是 | 設(shè)備類型的flag。 |
返回值:
類型 | 說明 |
---|---|
Promise<AudioDeviceDescriptors> | Promise回調(diào)返回設(shè)備列表。 |
示例:
- audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
- });
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 | 是 | 活躍音頻設(shè)備類型。 | |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
callback | AsyncCallback<void> | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
- if (err) {
- console.error(`Failed to set the active status of the device. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the device is set to the active status.');
- });
setDeviceActive(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 | 是 | 活躍音頻設(shè)備類型。 | |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
- console.info('Promise returned to indicate that the device is set to the active status.');
- });
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 | 是 | 活躍音頻設(shè)備類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回設(shè)備的激活狀態(tài)。 |
示例:
- audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the device. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the active status of the device is obtained.');
- });
isDeviceActive(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 | 是 | 活躍音頻設(shè)備類型。 |
返回值:
Type | Description |
---|---|
Promise<boolean> | Promise回調(diào)返回設(shè)備的激活狀態(tài)。 |
示例:
- audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
- console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
- });
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è)置成功或失敗。 |
示例:
- audioManager.setMicrophoneMute(true, (err) => {
- if (err) {
- console.error(`Failed to mute the microphone. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the microphone is muted.');
- });
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è)置成功或失敗。 |
示例:
- audioManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
- });
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為非靜音。 |
示例:
- audioManager.isMicrophoneMute((err, value) => {
- if (err) {
- console.error(`Failed to obtain the mute status of the microphone. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
- });
isMicrophoneMute(): 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為非靜音。 |
示例:
- audioManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
- });
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è)備更新詳情。 |
示例:
- audioManager.on('deviceChange', (deviceChanged) => {
- console.info(`device change type : ${deviceChanged.type} `);
- console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
- console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
- console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
- });
off(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è)備更新詳情。 |
示例:
- audioManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
- });
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)方法。 |
示例:
- let interAudioInterrupt = {
- streamUsage:2,
- contentType:0,
- pauseWhenDucked:true
- };
- audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
- if (InterruptAction.actionType === 0) {
- console.info('An event to gain the audio focus starts.');
- console.info(`Focus gain event: ${InterruptAction} `);
- }
- if (InterruptAction.actionType === 1) {
- console.info('An audio interruption event starts.');
- console.info(`Audio interruption event: ${InterruptAction} `);
- }
- });
off(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)方法。 |
示例:
- let interAudioInterrupt = {
- streamUsage:2,
- contentType:0,
- pauseWhenDucked:true
- };
- audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
- if (InterruptAction.actionType === 0) {
- console.info('An event to release the audio focus starts.');
- console.info(`Focus release event: ${InterruptAction} `);
- }
- });
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),返回一個音量組實例。 |
示例:
- let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
- audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the volume group infos list. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the volume group infos list is obtained.');
- });
getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>
獲取音頻組管理器,使用promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
groupId | number | 是 | 音量組id。 |
返回值:
類型 | 說明 |
---|---|
Promise< AudioVolumeGroupManager > | 音量組實例。 |
示例:
- let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
- let audioVolumeGroupManager;
- getVolumeGroupManager();
- async function getVolumeGroupManager(){
- audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
- console.info('Callback invoked to indicate that the volume group infos list is obtained.');
- }
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 |
示例:
- audioVolumeManager.on('volumeChange', (volumeEvent) => {
- console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
- console.info(`Volume level: ${volumeEvent.volume} `);
- console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
- });
管理音頻組音量。在調(diào)用AudioVolumeGroupManager的接口前,需要先通過 getVolumeGroupManager 創(chuàng)建實例。
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
獲取指定流的音量,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回音量大小。 |
示例:
- audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the volume. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the volume is obtained.');
- });
getVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的音量,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回音量大小。 |
示例:
- audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
- });
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
獲取指定流的最小音量,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回最小音量。 |
示例:
- audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the minimum volume. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
- });
getMinVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的最小音量,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回最小音量。 |
示例:
- audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
- });
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
獲取指定流的最大音量,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 | |
callback | AsyncCallback<number> | 是 | 回調(diào)返回最大音量大小。 |
示例:
- audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the maximum volume. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
- });
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
獲取指定流的最大音量,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise回調(diào)返回最大音量大小。 |
示例:
- audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
- console.info('Promised returned to indicate that the maximum volume is obtained.');
- });
isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
獲取指定音量流是否被靜音,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。 |
示例:
- audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the mute status. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
- });
isMute(volumeType: AudioVolumeType): Promise<boolean>
獲取指定音量流是否被靜音,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音量流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean> | Promise回調(diào)返回流靜音狀態(tài),true為靜音,false為非靜音。 |
示例:
- audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
- });
getRingerMode(callback: AsyncCallback<AudioRingMode>): void
獲取鈴聲模式,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioRingMode> | 是 | 回調(diào)返回系統(tǒng)的鈴聲模式。 |
示例:
- audioVolumeGroupManager.getRingerMode((err, value) => {
- if (err) {
- console.error(`Failed to obtain the ringer mode.? ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
- });
getRingerMode(): Promise<AudioRingMode>
獲取鈴聲模式,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
返回值:
類型 | 說明 |
---|---|
Promise<AudioRingMode> | Promise回調(diào)返回系統(tǒng)的鈴聲模式。 |
示例:
- audioVolumeGroupManager.getRingerMode().then((value) => {
- console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
- });
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 |
示例:
- audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
- console.info(`Updated ringermode: ${ringerMode}`);
- });
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è)置成功或失敗。 |
示例:
- audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
- if (err) {
- console.error(`Failed to mute the microphone. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the microphone is muted.');
- });
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è)置成功或失敗。 |
示例:
- audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
- });
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為非靜音。 |
示例:
- audioVolumeGroupManager.isMicrophoneMute((err, value) => {
- if (err) {
- console.error(`Failed to obtain the mute status of the microphone. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
- });
isMicrophoneMute(): 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為非靜音。 |
示例:
- audioVolumeGroupManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
- });
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 |
示例:
- audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
- console.info(`Current microphone status is: ${micStateChange.mute} `);
- });
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)前音頻渲染器的信息。 |
示例:
- audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
- console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
- if (err) {
- console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
- } else {
- if (AudioRendererChangeInfoArray != null) {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }
- });
getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>
獲取當(dāng)前音頻渲染器的信息。使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<AudioRendererChangeInfoArray> | Promise對象,返回當(dāng)前音頻渲染器信息。 |
示例:
- async function getCurrentAudioRendererInfoArray(){
- await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
- console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
- if (AudioRendererChangeInfoArray != null) {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }).catch((err) => {
- console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
- });
- }
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)前音頻采集器的信息。 |
示例:
- audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
- console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
- if (err) {
- console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
- } else {
- if (AudioCapturerChangeInfoArray != null) {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
- console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
- console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }
- });
getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>
獲取當(dāng)前音頻采集器的信息。使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<AudioCapturerChangeInfoArray> | Promise對象,返回當(dāng)前音頻渲染器信息。 |
示例:
- async function getCurrentAudioCapturerInfoArray(){
- await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
- console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
- if (AudioCapturerChangeInfoArray != null) {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
- console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
- console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }).catch((err) => {
- console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
- });
- }
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 |
示例:
- audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`## RendererChange on is called for ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
- });
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 |
示例:
- audioStreamManager.off('audioRendererChange');
- console.info('######### RendererChange Off is called #########');
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 |
示例:
- audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`## CapChange on is called for element ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
- console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
- console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
- let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- }
- });
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 |
示例:
- audioStreamManager.off('audioCapturerChange');
- console.info('######### CapturerChange Off is called #########');
isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
獲取指定音頻流是否為活躍狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音頻流類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。 |
示例:
- audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the stream. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
- });
isActive(volumeType: AudioVolumeType): Promise<boolean>
獲取指定音頻流是否為活躍狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
volumeType | 是 | 音頻流類型。 |
返回值:
類型 | 說明 |
---|---|
Promise<boolean> | Promise回調(diào)返回流的活躍狀態(tài),true為活躍,false為不活躍。 |
示例:
- audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
- });
音頻路由管理。在使用AudioRoutingManager的接口前,需要使用getRoutingManager獲取AudioRoutingManager實例。
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
獲取音頻設(shè)備列表,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceFlag | 是 | 設(shè)備類型的flag。 | |
callback | AsyncCallback<AudioDeviceDescriptors> | 是 | 回調(diào),返回設(shè)備列表。 |
示例:
- audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the device list. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the device list is obtained.');
- });
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceFlag | 是 | 設(shè)備類型的flag。 |
返回值:
類型 | 說明 |
---|---|
Promise<AudioDeviceDescriptors> | Promise回調(diào)返回設(shè)備列表。 |
示例:
- audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
- });
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 | 是 | 設(shè)備類型的flag。 | |
callback | Callback<DeviceChangeAction> | 是 | 獲取設(shè)備更新詳情。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見音頻錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
6800101 | if input parameter value error |
示例:
- audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
- console.info('device change type : ' + deviceChanged.type);
- console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
- console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
- console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
- });
off(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 |
示例:
- audioRoutingManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
- });
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void
設(shè)置通信設(shè)備激活狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceType | 是 | 音頻設(shè)備類型。 | |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
callback | AsyncCallback<void> | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
- if (err) {
- console.error(`Failed to set the active status of the device. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the device is set to the active status.');
- });
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>
設(shè)置通信設(shè)備激活狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceType | 是 | 活躍音頻設(shè)備類型。 | |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
- audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
- console.info('Promise returned to indicate that the device is set to the active status.');
- });
isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void
獲取指定通信設(shè)備的激活狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceType | 是 | 活躍音頻設(shè)備類型。 | |
callback | AsyncCallback<boolean> | 是 | 回調(diào)返回設(shè)備的激活狀態(tài)。 |
示例:
- audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the device. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate that the active status of the device is obtained.');
- });
isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>
獲取指定通信設(shè)備的激活狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
deviceType | 是 | 活躍音頻設(shè)備類型。 |
返回值:
Type | Description |
---|---|
Promise<boolean> | Promise回調(diào)返回設(shè)備的激活狀態(tài)。 |
示例:
- audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
- console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
- });
數(shù)組類型,AudioRenderChangeInfo數(shù)組,只讀。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
描述音頻渲染器更改信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
streamId | number | 是 | 否 | 音頻流唯一id。 |
rendererInfo | 是 | 否 | 音頻渲染器信息。 | |
deviceDescriptors | 是 | 否 | 音頻設(shè)備描述。 |
示例:
- import audio from '@ohos.multimedia.audio';
- const audioManager = audio.getAudioManager();
- let audioStreamManager = audioManager.getStreamManager();
- let resultFlag = false;
- audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- console.info(`## RendererChange on is called for ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
- console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
- console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
- let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for ${i} is: ${resultFlag}`);
- }
- }
- });
數(shù)組類型,AudioCapturerChangeInfo數(shù)組,只讀。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
描述音頻采集器更改信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
streamId | number | 是 | 否 | 音頻流唯一id。 |
capturerInfo | 是 | 否 | 音頻采集器信息。 | |
deviceDescriptors | 是 | 否 | 音頻設(shè)備描述。 |
示例:
- import audio from '@ohos.multimedia.audio';
- const audioManager = audio.getAudioManager();
- let audioStreamManager = audioManager.getStreamManager();
- let resultFlag = false;
- audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`## CapChange on is called for element ${i} ##`);
- console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
- console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
- let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
- for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
- }
- }
- });
描述音頻設(shè)備。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
deviceRole | 是 | 否 | 設(shè)備角色。 | |
deviceType | 是 | 否 | 設(shè)備類型。 | |
id9+ | number | 是 | 否 | 設(shè)備id,唯一。 |
name9+ | string | 是 | 否 | 設(shè)備名稱。 |
address9+ | string | 是 | 否 | 設(shè)備地址。 |
sampleRates9+ | Array<number> | 是 | 否 | 支持的采樣率。 |
channelCounts9+ | Array<number> | 是 | 否 | 支持的通道數(shù)。 |
channelMasks9+ | Array<number> | 是 | 否 | 支持的通道掩碼。 |
示例:
- import audio from '@ohos.multimedia.audio';
- function displayDeviceProp(value) {
- deviceRoleValue = value.deviceRole;
- deviceTypeValue = value.deviceType;
- }
- let deviceRoleValue = null;
- let deviceTypeValue = null;
- const promise = audio.getAudioManager().getDevices(1);
- promise.then(function (value) {
- console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
- value.forEach(displayDeviceProp);
- if (deviceTypeValue != null && deviceRoleValue != null){
- console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS');
- } else {
- console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL');
- }
- });
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
state8+ | 是 | 否 | 音頻渲染器的狀態(tài)。 |
示例:
- let state = audioRenderer.state;
getRendererInfo(callback: AsyncCallback<AudioRendererInfo>): void
獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioRendererInfo> | 是 | 返回音頻渲染器的信息。 |
示例:
- audioRenderer.getRendererInfo((err, rendererInfo) => {
- console.info('Renderer GetRendererInfo:');
- console.info(`Renderer content: ${rendererInfo.content}`);
- console.info(`Renderer usage: ${rendererInfo.usage}`);
- console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
- });
getRendererInfo(): Promise<AudioRendererInfo>
獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<AudioRendererInfo> | Promise用于返回音頻渲染器信息。 |
示例:
- audioRenderer.getRendererInfo().then((rendererInfo) => {
- console.info('Renderer GetRendererInfo:');
- console.info(`Renderer content: ${rendererInfo.content}`);
- console.info(`Renderer usage: ${rendererInfo.usage}`);
- console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
- }).catch((err) => {
- console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
- });
getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void
獲取音頻流信息,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioStreamInfo> | 是 | 回調(diào)返回音頻流信息。 |
示例:
- audioRenderer.getStreamInfo((err, streamInfo) => {
- console.info('Renderer GetStreamInfo:');
- console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Renderer channel: ${streamInfo.channels}`);
- console.info(`Renderer format: ${streamInfo.sampleFormat}`);
- console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
- });
getStreamInfo(): Promise<AudioStreamInfo>
獲取音頻流信息,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<AudioStreamInfo> | Promise返回音頻流信息. |
示例:
- audioRenderer.getStreamInfo().then((streamInfo) => {
- console.info('Renderer GetStreamInfo:');
- console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Renderer channel: ${streamInfo.channels}`);
- console.info(`Renderer format: ${streamInfo.sampleFormat}`);
- console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
getAudioStreamId(callback: AsyncCallback<number>): void
獲取音頻流id,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回調(diào)返回音頻流id。 |
示例:
- audioRenderer.getAudioStreamId((err, streamid) => {
- console.info(`Renderer GetStreamId: ${streamid}`);
- });
getAudioStreamId(): Promise<number>
獲取音頻流id,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise返回音頻流id。 |
示例:
- audioRenderer.getAudioStreamId().then((streamid) => {
- console.info(`Renderer getAudioStreamId: ${streamid}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
start(callback: AsyncCallback<void>): void
啟動音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回調(diào)函數(shù)。 |
示例:
- audioRenderer.start((err) => {
- if (err) {
- console.error('Renderer start failed.');
- } else {
- console.info('Renderer start success.');
- }
- });
start(): Promise<void>
啟動音頻渲染器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise方式異步返回結(jié)果。 |
示例:
- audioRenderer.start().then(() => {
- console.info('Renderer started');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
pause(callback: AsyncCallback<void>): void
暫停渲染。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 返回回調(diào)的結(jié)果。 |
示例:
- audioRenderer.pause((err) => {
- if (err) {
- console.error('Renderer pause failed');
- } else {
- console.info('Renderer paused.');
- }
- });
pause(): Promise<void>
暫停渲染。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise方式異步返回結(jié)果。 |
示例:
- audioRenderer.pause().then(() => {
- console.info('Renderer paused');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
drain(callback: AsyncCallback<void>): void
檢查緩沖區(qū)是否已被耗盡。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 返回回調(diào)的結(jié)果。 |
示例:
- audioRenderer.drain((err) => {
- if (err) {
- console.error('Renderer drain failed');
- } else {
- console.info('Renderer drained.');
- }
- });
drain(): Promise<void>
檢查緩沖區(qū)是否已被耗盡。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise方式異步返回結(jié)果。 |
示例:
- audioRenderer.drain().then(() => {
- console.info('Renderer drained successfully');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
stop(callback: AsyncCallback<void>): void
停止渲染。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 返回回調(diào)的結(jié)果。 |
示例:
- audioRenderer.stop((err) => {
- if (err) {
- console.error('Renderer stop failed');
- } else {
- console.info('Renderer stopped.');
- }
- });
stop(): Promise<void>
停止渲染。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise方式異步返回結(jié)果。 |
示例:
- audioRenderer.stop().then(() => {
- console.info('Renderer stopped successfully');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
release(callback: AsyncCallback<void>): void
釋放音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 返回回調(diào)的結(jié)果。 |
示例:
- audioRenderer.release((err) => {
- if (err) {
- console.error('Renderer release failed');
- } else {
- console.info('Renderer released.');
- }
- });
release(): Promise<void>
釋放渲染器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise方式異步返回結(jié)果。 |
示例:
- audioRenderer.release().then(() => {
- console.info('Renderer released successfully');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
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。 |
示例:
- let bufferSize;
- audioRenderer.getBufferSize().then((data)=> {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
- });
- console.info(`Buffer size: ${bufferSize}`);
- let context = featureAbility.getContext();
- let path;
- async function getCacheDir(){
- path = await context.getCacheDir();
- }
- let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
- let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
- let stat = await fs.stat(path);
- let buf = new ArrayBuffer(bufferSize);
- let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
- for (let i = 0;i < len; i++) {
- let options = {
- offset: i * bufferSize,
- length: bufferSize
- }
- let readsize = await fs.read(file.fd, buf, options)
- let writeSize = await new Promise((resolve,reject)=>{
- audioRenderer.write(buf,(err,writeSize)=>{
- if(err){
- reject(err)
- }else{
- resolve(writeSize)
- }
- })
- })
- }
write(buffer: ArrayBuffer): Promise<number>
寫入緩沖區(qū)。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise返回結(jié)果,如果成功,返回寫入的字節(jié)數(shù),否則返回errorcode。 |
示例:
- let bufferSize;
- audioRenderer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
- });
- console.info(`BufferSize: ${bufferSize}`);
- let context = featureAbility.getContext();
- let path;
- async function getCacheDir(){
- path = await context.getCacheDir();
- }
- let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
- let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
- let stat = await fs.stat(path);
- let buf = new ArrayBuffer(bufferSize);
- let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
- for (let i = 0;i < len; i++) {
- let options = {
- offset: i * bufferSize,
- length: bufferSize
- }
- let readsize = await fs.read(file.fd, buf, options)
- try{
- let writeSize = await audioRenderer.write(buf);
- } catch(err) {
- console.error(`audioRenderer.write err: ${err}`);
- }
- }
getAudioTime(callback: AsyncCallback<number>): void
獲取時間戳(從 1970 年 1 月 1 日開始)。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回調(diào)返回時間戳。 |
示例:
- audioRenderer.getAudioTime((err, timestamp) => {
- console.info(`Current timestamp: ${timestamp}`);
- });
getAudioTime(): Promise<number>
獲取時間戳(從 1970 年 1 月 1 日開始)。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 描述 |
---|---|
Promise<number> | Promise回調(diào)返回時間戳。 |
示例:
- audioRenderer.getAudioTime().then((timestamp) => {
- console.info(`Current timestamp: ${timestamp}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
getBufferSize(callback: AsyncCallback<number>): void
獲取音頻渲染器的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回調(diào)返回緩沖區(qū)大小。 |
示例:
- let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
- if (err) {
- console.error('getBufferSize error');
- }
- });
getBufferSize(): Promise<number>
獲取音頻渲染器的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<number> | promise回調(diào)返回緩沖區(qū)大小。 |
示例:
- let bufferSize;
- audioRenderer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
- });
setRenderRate(rate: AudioRendererRate, callback: AsyncCallback<void>): void
設(shè)置音頻渲染速率。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
rate | 是 | 渲染的速率。 | |
callback | AsyncCallback<void> | 是 | 用于返回執(zhí)行結(jié)果的回調(diào)。 |
示例:
- audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
- if (err) {
- console.error('Failed to set params');
- } else {
- console.info('Callback invoked to indicate a successful render rate setting.');
- }
- });
setRenderRate(rate: AudioRendererRate): Promise<void>
設(shè)置音頻渲染速率。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
rate | 是 | 渲染的速率。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise用于返回執(zhí)行結(jié)果。 |
示例:
- audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
- console.info('setRenderRate SUCCESS');
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
getRenderRate(callback: AsyncCallback<AudioRendererRate>): void
獲取當(dāng)前渲染速率。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioRendererRate> | 是 | 回調(diào)返回渲染速率。 |
示例:
- audioRenderer.getRenderRate((err, renderrate) => {
- console.info(`getRenderRate: ${renderrate}`);
- });
getRenderRate(): Promise<AudioRendererRate>
獲取當(dāng)前渲染速率。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說明 |
---|---|
Promise<AudioRendererRate> | Promise回調(diào)返回渲染速率。 |
示例:
- audioRenderer.getRenderRate().then((renderRate) => {
- console.info(`getRenderRate: ${renderRate}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
setInterruptMode(mode: InterruptMode): Promise<void>
設(shè)置應(yīng)用的焦點模型。使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
mode | 是 | 焦點模型。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | 以Promise對象返回結(jié)果,設(shè)置成功時返回undefined,否則返回error。 |
示例:
- let mode = 0;
- audioRenderer.setInterruptMode(mode).then(data=>{
- console.info('setInterruptMode Success!');
- }).catch((err) => {
- console.error(`setInterruptMode Fail: ${err}`);
- });
setInterruptMode(mode: InterruptMode, callback: AsyncCallback<void>): void
設(shè)置應(yīng)用的焦點模型。使用Callback回調(diào)返回執(zhí)行結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Interrupt
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
mode | 是 | 焦點模型。 | |
callback | AsyncCallback<void> | 是 | 回調(diào)返回執(zhí)行結(jié)果。 |
示例:
- let mode = 1;
- audioRenderer.setInterruptMode(mode, (err, data)=>{
- if(err){
- console.error(`setInterruptMode Fail: ${err}`);
- }
- console.info('setInterruptMode Success!');
- });
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。 |
示例:
- audioRenderer.setVolume(0.5).then(data=>{
- console.info('setVolume Success!');
- }).catch((err) => {
- console.error(`setVolume Fail: ${err}`);
- });
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é)果。 |
示例:
- audioRenderer.setVolume(0.5, (err, data)=>{
- if(err){
- console.error(`setVolume Fail: ${err}`);
- }
- console.info('setVolume Success!');
- });
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 |
示例:
- let isPlay;
- let started;
- onAudioInterrupt();
- async function onAudioInterrupt(){
- audioRenderer.on('audioInterrupt', async(interruptEvent) => {
- if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
- switch (interruptEvent.hintType) {
- case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
- console.info('Force paused. Stop writing');
- isPlay = false;
- break;
- case audio.InterruptHint.INTERRUPT_HINT_STOP:
- console.info('Force stopped. Stop writing');
- isPlay = false;
- break;
- }
- } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
- switch (interruptEvent.hintType) {
- case audio.InterruptHint.INTERRUPT_HINT_RESUME:
- console.info('Resume force paused renderer or ignore');
- await audioRenderer.start().then(async function () {
- console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
- started = true;
- }).catch((err) => {
- console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
- started = false;
- });
- if (started) {
- isPlay = true;
- console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
- } else {
- console.error('AudioInterruptMusic Renderer start failed');
- }
- break;
- case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
- console.info('Choose to pause or ignore');
- if (isPlay == true) {
- isPlay == false;
- console.info('AudioInterruptMusic: Media PAUSE : TRUE');
- } else {
- isPlay = true;
- console.info('AudioInterruptMusic: Media PLAY : TRUE');
- }
- break;
- }
- }
- });
- }
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)。 |
示例:
- audioRenderer.on('markReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off(type: 'markReach'): void
取消訂閱標(biāo)記事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 要取消訂閱事件的類型。支持的事件為:'markReach'。 |
示例:
- audioRenderer.off('markReach');
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)。 |
示例:
- audioRenderer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off(type: 'periodReach'): void
取消訂閱標(biāo)記事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 要取消訂閱事件的類型。支持的事件為:'periodReach'。 |
示例:
- audioRenderer.off('periodReach')
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)。 |
示例:
- audioRenderer.on('stateChange', (state) => {
- if (state == 1) {
- console.info('audio renderer state is: STATE_PREPARED');
- }
- if (state == 2) {
- console.info('audio renderer state is: STATE_RUNNING');
- }
- });
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
state8+ | 是 | 否 | 音頻采集器狀態(tài)。 |
示例:
- let state = audioCapturer.state;
getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo>): void
獲取采集器信息。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioCapturerInfo> | 是 | 使用callback方式異步返回采集器信息。 |
示例:
- audioCapturer.getCapturerInfo((err, capturerInfo) => {
- if (err) {
- console.error('Failed to get capture info');
- } else {
- console.info('Capturer getCapturerInfo:');
- console.info(`Capturer source: ${capturerInfo.source}`);
- console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
- }
- });
getCapturerInfo(): Promise<AudioCapturerInfo>
獲取采集器信息。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<AudioCapturerInfo> | 使用Promise方式異步返回采集器信息。 |
示例:
- audioCapturer.getCapturerInfo().then((audioParamsGet) => {
- if (audioParamsGet != undefined) {
- console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
- console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
- console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
- } else {
- console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
- console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
- }
- }).catch((err) => {
- console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
- });
getStreamInfo(callback: AsyncCallback<AudioStreamInfo>): void
獲取采集器流信息。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<AudioStreamInfo> | 是 | 使用callback方式異步返回流信息。 |
示例:
- audioCapturer.getStreamInfo((err, streamInfo) => {
- if (err) {
- console.error('Failed to get stream info');
- } else {
- console.info('Capturer GetStreamInfo:');
- console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Capturer channel: ${streamInfo.channels}`);
- console.info(`Capturer format: ${streamInfo.sampleFormat}`);
- console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
- }
- });
getStreamInfo(): Promise<AudioStreamInfo>
獲取采集器流信息。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<AudioStreamInfo> | 使用Promise方式異步返回流信息。 |
示例:
- audioCapturer.getStreamInfo().then((audioParamsGet) => {
- console.info('getStreamInfo:');
- console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
- console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
- console.info(`channels: ${audioParamsGet.channels}`);
- console.info(`encodingType: ${audioParamsGet.encodingType}`);
- }).catch((err) => {
- console.error(`getStreamInfo :ERROR: ${err}`);
- });
getAudioStreamId(callback: AsyncCallback<number>): void
獲取音頻流id,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 回調(diào)返回音頻流id。 |
示例:
- audioCapturer.getAudioStreamId((err, streamid) => {
- console.info(`audioCapturer GetStreamId: ${streamid}`);
- });
getAudioStreamId(): Promise<number>
獲取音頻流id,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<number> | Promise返回音頻流id。 |
示例:
- audioCapturer.getAudioStreamId().then((streamid) => {
- console.info(`audioCapturer getAudioStreamId: ${streamid}`);
- }).catch((err) => {
- console.error(`ERROR: ${err}`);
- });
start(callback: AsyncCallback<void>): void
啟動音頻采集器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
- audioCapturer.start((err) => {
- if (err) {
- console.error('Capturer start failed.');
- } else {
- console.info('Capturer start success.');
- }
- });
start(): Promise<void>
啟動音頻采集器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<void> | 使用Promise方式異步返回結(jié)果。 |
示例:
- audioCapturer.start().then(() => {
- console.info('AudioFrameworkRecLog: ---------START---------');
- console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
- console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
- console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
- if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
- console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
- }
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
- });
stop(callback: AsyncCallback<void>): void
停止采集。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
- audioCapturer.stop((err) => {
- if (err) {
- console.error('Capturer stop failed');
- } else {
- console.info('Capturer stopped.');
- }
- });
stop(): Promise<void>
停止采集。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<void> | 使用Promise方式異步返回結(jié)果。 |
示例:
- audioCapturer.stop().then(() => {
- console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
- console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
- if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
- console.info('AudioFrameworkRecLog: State is Stopped:');
- }
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
- });
release(callback: AsyncCallback<void>): void
釋放采集器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
- audioCapturer.release((err) => {
- if (err) {
- console.error('capturer release failed');
- } else {
- console.info('capturer released.');
- }
- });
release(): Promise<void>
釋放采集器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<void> | 使用Promise方式異步返回結(jié)果。 |
示例:
- let stateFlag;
- audioCapturer.release().then(() => {
- console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
- console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
- console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
- console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
- });
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ū)。 |
示例:
- let bufferSize;
- audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
- });
- audioCapturer.read(bufferSize, true, async(err, buffer) => {
- if (!err) {
- console.info('Success in reading the buffer data');
- }
- });
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ù);否則返回錯誤代碼。 |
示例:
- let bufferSize;
- audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
- });
- console.info(`Buffer size: ${bufferSize}`);
- audioCapturer.read(bufferSize, true).then((buffer) => {
- console.info('buffer read successfully');
- }).catch((err) => {
- console.info(`ERROR : ${err}`);
- });
getAudioTime(callback: AsyncCallback<number>): void
獲取時間戳(從1970年1月1日開始),單位為納秒。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
- audioCapturer.getAudioTime((err, timestamp) => {
- console.info(`Current timestamp: ${timestamp}`);
- });
getAudioTime(): Promise<number>
獲取時間戳(從1970年1月1日開始),單位為納秒。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<number> | 使用Promise方式異步返回結(jié)果。 |
示例:
- audioCapturer.getAudioTime().then((audioTime) => {
- console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
- });
getBufferSize(callback: AsyncCallback<number>): void
獲取采集器合理的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | 使用callback方式異步返回緩沖區(qū)大小。 |
示例:
- audioCapturer.getBufferSize((err, bufferSize) => {
- if (!err) {
- console.info(`BufferSize : ${bufferSize}`);
- audioCapturer.read(bufferSize, true).then((buffer) => {
- console.info(`Buffer read is ${buffer}`);
- }).catch((err) => {
- console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
- });
- }
- });
getBufferSize(): Promise<number>
獲取采集器合理的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說明 |
---|---|
Promise<number> | 使用Promise方式異步返回緩沖區(qū)大小。 |
示例:
- let bufferSize;
- audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
- });
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)。 |
示例:
- audioCapturer.on('markReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off(type: 'markReach'): void
取消訂閱標(biāo)記到達的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 取消事件回調(diào)類型,支持的事件為:'markReach'。 |
示例:
- audioCapturer.off('markReach');
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) |
示例:
- audioCapturer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
- });
off(type: 'periodReach'): void
取消訂閱標(biāo)記到達的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 取消事件回調(diào)類型,支持的事件為:'periodReach'。 |
示例:
- audioCapturer.off('periodReach')
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)。 |
示例:
- audioCapturer.on('stateChange', (state) => {
- if (state == 1) {
- console.info('audio capturer state is: STATE_PREPARED');
- }
- if (state == 2) {
- console.info('audio capturer state is: STATE_RUNNING');
- }
- });
枚舉,活躍設(shè)備類型。
從 API version 9 開始廢棄,建議使用CommunicationDeviceType替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
名稱 | 值 | 說明 |
---|---|---|
SPEAKER | 2 | 揚聲器。 |
BLUETOOTH_SCO | 7 | 藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。 |
枚舉,中斷事件返回類型。
從 API version 7 開始支持,從 API version 9 開始廢棄。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 值 | 說明 |
---|---|---|
TYPE_ACTIVATED | 0 | 表示觸發(fā)焦點事件。 |
TYPE_INTERRUPT | 1 | 表示音頻打斷事件。 |
音頻監(jiān)聽事件傳入的參數(shù)。
從 API version 7 開始支持,從 API version 9 開始廢棄。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
streamUsage | 是 | 音頻流使用類型。 | |
contentType | 是 | 音頻打斷媒體類型。 | |
pauseWhenDucked | boolean | 是 | 音頻打斷時是否可以暫停音頻播放(true表示音頻播放可以在音頻打斷期間暫停,false表示相反)。 |
音頻打斷/獲取焦點事件的回調(diào)方法。
從 API version 7 開始支持,從 API version 9 開始廢棄。建議使用InterruptEvent替代。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
actionType | 是 | 事件返回類型。TYPE_ACTIVATED為焦點觸發(fā)事件,TYPE_INTERRUPT為音頻打斷事件。 | |
type | 否 | 打斷事件類型。 | |
hint | 否 | 打斷事件提示。 | |
activated | boolean | 否 |
更多建議: