国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發接口媒體:【@ohos.multimedia.audio (音頻管理)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-31 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

音頻管理

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

該模塊提供以下音頻相關的常用功能:

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

說明: 本模塊首批接口從API version 7開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。 開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導入模塊

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

audio.getAudioManager

getAudioManager(): AudioManager

獲取音頻管理器。

系統能力: SystemCapability.Multimedia.Audio.Core

返回值:

類型說明
[AudioManager]音頻管理類。

示例:

var audioManager = audio.getAudioManager();

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數

參數名類型必填說明
options[AudioRendererOptions]配置渲染器。
callbackAsyncCallback<[AudioRenderer]>音頻渲染器對象。

示例:

import audio from '@ohos.multimedia.audio';
var audioStreamInfo = {
    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
    channels: audio.AudioChannel.CHANNEL_1,
    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}

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

audio.createAudioRenderer8+

createAudioRenderer(options: AudioRendererOptions): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
options[AudioRendererOptions]配置渲染器。

返回值:

類型說明
Promise<[AudioRenderer]>音頻渲染器對象。

示例:

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

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

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}

var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) = > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
}).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created : ERROR : '+err.message);
});

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
options[AudioCapturerOptions]配置音頻采集器。
callbackAsyncCallback<[AudioCapturer]>音頻采集器對象。

示例:

import audio from '@ohos.multimedia.audio';
var audioStreamInfo = {
    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
    channels: audio.AudioChannel.CHANNEL_2,
    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags: 1
}

var audioCapturerOptions = {
    streamInfo: audioStreamInfo,
    capturerInfo: audioCapturerInfo
}

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

audio.createAudioCapturer8+

createAudioCapturer(options: AudioCapturerOptions): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
options[AudioCapturerOptions]配置音頻采集器。

返回值:

類型說明
Promise<[AudioCapturer]>音頻采集器對象

示例:

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

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

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags: 1
}

var audioCapturerOptions = {
    streamInfo: audioStreamInfo,
    capturerInfo: audioCapturerInfo
}

var audioCapturer;
audio.createAudioRenderer(audioCapturerOptions).then((data) = > {
    audioCapturer = data;
    console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
}).catch((err) = > {
    console.info('AudioCapturer Created : ERROR : '+err.message);
});

AudioVolumeType

枚舉,音頻流類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Volume

名稱默認值描述
VOICE_CALL8+0語音電話。
RINGTONE2鈴聲。
MEDIA3媒體。
VOICE_ASSISTANT8+9語音助手。

DeviceFlag

枚舉,可獲取的設備種類。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱默認值描述
OUTPUT_DEVICES_FLAG1輸出設備。
INPUT_DEVICES_FLAG2輸入設備。
ALL_DEVICES_FLAG3所有設備。

DeviceRole

枚舉,設備角色。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱默認值描述
INPUT_DEVICE1輸入設備角色。
OUTPUT_DEVICE2輸出設備角色。

DeviceType

枚舉,設備類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱默認值描述
INVALID0無效設備。
EARPIECE1聽筒。
SPEAKER2揚聲器。
WIRED_HEADSET3有線耳機,帶麥克風。
WIRED_HEADPHONES4有線耳機,無麥克風。
BLUETOOTH_SCO7藍牙設備SCO(Synchronous Connection Oriented)連接。
BLUETOOTH_A2DP8藍牙設備A2DP(Advanced Audio Distribution Profile)連接。
MIC15麥克風。
USB_HEADSET22USB耳機,帶麥克風。

ActiveDeviceType

枚舉,活躍設備類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱默認值描述
SPEAKER2揚聲器。
BLUETOOTH_SCO7藍牙設備SCO(Synchronous Connection Oriented)連接。

AudioRingMode

枚舉,鈴聲模式。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Communication

名稱默認值描述
RINGER_MODE_SILENT0靜音模式。
RINGER_MODE_VIBRATE1震動模式。
RINGER_MODE_NORMAL2響鈴模式。

AudioSampleFormat8+

枚舉,音頻采樣格式。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
SAMPLE_FORMAT_INVALID-1無效格式。
SAMPLE_FORMAT_U80無符號8位整數。
SAMPLE_FORMAT_S16LE1帶符號的16位整數,小尾數。
SAMPLE_FORMAT_S24LE2帶符號的24位整數,小尾數。
SAMPLE_FORMAT_S32LE3帶符號的32位整數,小尾數。

AudioChannel8+

枚舉, 音頻聲道。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
CHANNEL_10x1 << 0單聲道。
CHANNEL_20x1 << 1雙聲道。

AudioSamplingRate8+

枚舉,音頻采樣率。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
SAMPLE_RATE_80008000采樣率為8000。
SAMPLE_RATE_1102511025采樣率為11025。
SAMPLE_RATE_1200012000采樣率為12000。
SAMPLE_RATE_1600016000采樣率為16000。
SAMPLE_RATE_2205022050采樣率為22050。
SAMPLE_RATE_2400024000采樣率為24000。
SAMPLE_RATE_3200032000采樣率為32000。
SAMPLE_RATE_4410044100采樣率為44100。
SAMPLE_RATE_4800048000采樣率為48000。
SAMPLE_RATE_6400064000采樣率為64000。
SAMPLE_RATE_9600096000采樣率為96000。

AudioEncodingType8+

枚舉,音頻編碼類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
ENCODING_TYPE_INVALID-1無效。
ENCODING_TYPE_RAW0PCM編碼。

ContentType

枚舉,音頻內容類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
CONTENT_TYPE_UNKNOWN0未知類型。
CONTENT_TYPE_SPEECH1語音。
CONTENT_TYPE_MUSIC2音樂。
CONTENT_TYPE_MOVIE3電影。
CONTENT_TYPE_SONIFICATION4加密類型。
CONTENT_TYPE_RINGTONE8+5鈴聲。

StreamUsage

枚舉,音頻流使用類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
STREAM_USAGE_UNKNOWN0未知類型。
STREAM_USAGE_MEDIA1音頻。
STREAM_USAGE_VOICE_COMMUNICATION2語音通信
STREAM_USAGE_NOTIFICATION_RINGTONE6通知鈴聲。

AudioState8+

枚舉,音頻狀態。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
STATE_INVALID-1無效狀態。
STATE_NEW0創建新實例狀態。
STATE_PREPARED1準備狀態。
STATE_RUNNING2可運行狀態。
STATE_STOPPED3停止狀態。
STATE_RELEASED4釋放狀態。
STATE_PAUSED5暫停狀態。

AudioRendererRate8+

枚舉,音頻渲染速度。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認值描述
RENDER_RATE_NORMAL0正常速度。
RENDER_RATE_DOUBLE12倍速。
RENDER_RATE_HALF20.5倍數。

InterruptType

枚舉,中斷類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認值描述
INTERRUPT_TYPE_BEGIN1音頻播放中斷事件開始。
INTERRUPT_TYPE_END2音頻播放中斷事件結束。

InterruptForceType9+

枚舉,強制打斷類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認值描述
INTERRUPT_FORCE0由系統進行操作,強制打斷音頻播放。
INTERRUPT_SHARE1由應用進行操作,可以選擇打斷或忽略。

InterruptHint

枚舉,中斷提示。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認值描述
INTERRUPT_HINT_NONE8+0無提示。
INTERRUPT_HINT_RESUME1提示音頻恢復。
INTERRUPT_HINT_PAUSE2提示音頻暫停。
INTERRUPT_HINT_STOP3提示音頻停止。
INTERRUPT_HINT_DUCK4提示音頻躲避。(躲避:音量減弱,而不會停止)
INTERRUPT_HINT_UNDUCK8+5提示音量恢復。

InterruptActionType

枚舉,中斷事件返回類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱默認值描述
TYPE_ACTIVATED0表示觸發焦點事件。
TYPE_INTERRUPT1表示音頻打斷事件。

AudioStreamInfo8+

音頻流信息。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱類型必填說明
samplingRate[AudioSamplingRate]音頻文件的采樣率。
channels[AudioChannel]音頻文件的通道數。
sampleFormat[AudioSampleFormat]音頻采樣格式。
encodingType[AudioEncodingType]音頻編碼格式。

AudioRendererInfo8+

音頻渲染器信息。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱類型必填說明
content[ContentType]媒體類型。
usage[StreamUsage]音頻流使用類型。
rendererFlagsnumber音頻渲染器標志。

AudioRendererOptions8+

音頻渲染器選項信息。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說明
streamInfo[AudioStreamInfo]表示音頻流信息。
rendererInfo[AudioRendererInfo]表示渲染器信息。

InterruptEvent9+

播放中斷時,應用接收的中斷事件。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說明
eventType[InterruptType]中斷事件類型,開始或是結束。
forceType[InterruptForceType]操作是由系統執行或是由應用程序執行。
hintType[InterruptHint]中斷提示。

AudioInterrupt

音頻監聽事件傳入的參數。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說明
streamUsage[StreamUsage]音頻流使用類型。
contentType[ContentType]音頻打斷媒體類型。
pauseWhenDuckedboolean音頻打斷時是否可以暫停音頻播放(true表示音頻播放可以在音頻打斷期間暫停,false表示相反)。

InterruptAction

音頻打斷/獲取焦點事件的回調方法。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Renderer

名稱類型必填說明
actionType[InterruptActionType]事件返回類型。TYPE_ACTIVATED為焦點觸發事件,TYPE_INTERRUPT為音頻打斷事件。
type[InterruptType]打斷事件類型。
hint[InterruptHint]打斷事件提示。
activatedboolean獲得/釋放焦點。true表示焦點獲取/釋放成功,false表示焦點獲得/釋放失敗。

VolumeEvent8+

音量改變時,應用接收的事件。

此接口為系統接口,三方應用不支持調用。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Volume

名稱類型必填說明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級,可設置范圍通過getMinVolume和getMaxVolume獲取。
updateUiboolean在UI中顯示音量變化。

DeviceChangeAction

描述設備連接狀態變化和設備信息。

**系統能力:**SystemCapability.Multimedia.Audio.Device

名稱類型必填說明
type[DeviceChangeType]設備連接狀態變化。
deviceDescriptors[AudioDeviceDescriptors]設備信息。

DeviceChangeType

枚舉,設備連接狀態變化。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱默認值描述
CONNECT0設備連接。
DISCONNECT1斷開設備連接。

AudioCapturerOptions8+

音頻采集器選項信息。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Capturer

名稱類型必填說明
streamInfo[AudioStreamInfo]表示音頻流信息。
capturerInfo[AudioCapturerInfo]表示采集器信息。

AudioCapturerInfo8+[]()

描述音頻采集器信息。

系統能力: SystemCapability.Multimedia.Audio.Core

名稱類型必填說明
source[SourceType]音源類型。
capturerFlagsnumber音頻采集器標志。

SourceType8+[]()

枚舉,音源類型。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Core

名稱默認值描述
SOURCE_TYPE_INVALID-1無效的音頻源。
SOURCE_TYPE_MIC0Mic音頻源。
SOURCE_TYPE_VOICE_COMMUNICATION7語音通話場景的音頻源。

AudioScene8+[]()

枚舉,音頻場景。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Communication

名稱默認值描述
AUDIO_SCENE_DEFAULT0默認音頻場景。
AUDIO_SCENE_RINGING1響鈴模式。 此接口為系統接口,三方應用不支持調用。
AUDIO_SCENE_PHONE_CALL2電話模式。 此接口為系統接口,三方應用不支持調用。
AUDIO_SCENE_VOICE_CHAT3語音聊天模式。

AudioManager

管理音頻音量和音頻設備。在調用AudioManager的接口前,需要先通過getAudioManager創建實例。

setVolume

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

設置指定流的音量,使用callback方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級,可設置范圍通過getMinVolume和getMaxVolume獲取。
callbackAsyncCallback回調表示成功還是失敗。

示例:

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

setVolume

setVolume(volumeType: AudioVolumeType, volume: number): Promise

設置指定流的音量,使用Promise方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
volumenumber音量等級,可設置范圍通過getMinVolume和getMaxVolume獲取。

返回值:

類型說明
PromisePromise回調表示成功還是失敗。

示例:

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

getVolume

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調返回音量大小。

示例:

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

getVolume

getVolume(volumeType: AudioVolumeType): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說明
PromisePromise回調返回音量大小。

示例:

audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) = > {
    console.log('Promise returned to indicate that the volume is obtained.' + value);
});

getMinVolume

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調返回最小音量。

示例:

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) = > {
    if (err) {
        console.error('Failed to obtain the minimum volume. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the minimum volume is obtained.' + value);
});

getMinVolume

getMinVolume(volumeType: AudioVolumeType): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說明
PromisePromise回調返回最小音量。

示例:

audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) = > {
    console.log('Promised returned to indicate that the minimum volume is obtained.' + value);
});

getMaxVolume

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調返回最大音量大小。

示例:

audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) = > {
    if (err) {
        console.error('Failed to obtain the maximum volume. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the maximum volume is obtained.' + value);
});

getMaxVolume

getMaxVolume(volumeType: AudioVolumeType): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說明
PromisePromise回調返回最大音量大小。

示例:

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

mute

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

設置指定音量流靜音,使用callback方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
muteboolean靜音狀態,true為靜音,false為非靜音。
callbackAsyncCallback回調表示成功還是失敗。

示例:

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

mute

mute(volumeType: AudioVolumeType, mute: boolean): Promise

設置指定音量流靜音,使用Promise方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
muteboolean靜音狀態,true為靜音,false為非靜音。

返回值:

類型說明
PromisePromise回調表示成功還是失敗。

示例:

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

isMute

isMute(volumeType: AudioVolumeType, callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調返回流靜音狀態,true為靜音,false為非靜音。

示例:

audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) = > {
   if (err) {
       console.error('Failed to obtain the mute status. ${err.message}');
       return;
   }
   console.log('Callback invoked to indicate that the mute status of the stream is obtained.' + value);
});

isMute

isMute(volumeType: AudioVolumeType): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說明
PromisePromise回調返回流靜音狀態,true為靜音,false為非靜音。

示例:

audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) = > {
    console.log('Promise returned to indicate that the mute status of the stream is obtained.' + value);
});

isActive

isActive(volumeType: AudioVolumeType, callback: AsyncCallback): void

獲取指定音量流是否為活躍狀態,使用callback方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。
callbackAsyncCallback回調返回流的活躍狀態,true為活躍,false為不活躍。

示例:

audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) = > {
    if (err) {
        console.error('Failed to obtain the active status of the stream. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the active status of the stream is obtained.' + value);
});

isActive

isActive(volumeType: AudioVolumeType): Promise

獲取指定音量流是否為活躍狀態,使用Promise方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
volumeType[AudioVolumeType]音量流類型。

返回值:

類型說明
PromisePromise回調返回流的活躍狀態,true為活躍,false為不活躍。

示例:

audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) = > {
    console.log('Promise returned to indicate that the active status of the stream is obtained.' + value);
});

setRingerMode

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

設置鈴聲模式,使用callback方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
mode[AudioRingMode]音頻鈴聲模式。
callbackAsyncCallback回調返回設置成功或失敗。

示例:

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

setRingerMode

setRingerMode(mode: AudioRingMode): Promise

設置鈴聲模式,使用Promise方式異步返回結果。

需要權限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態切換時需要該權限。

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
mode[AudioRingMode]音頻鈴聲模式。

返回值:

類型說明
PromisePromise回調返回設置成功或失敗。

示例:

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

getRingerMode

getRingerMode(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioRingMode]>回調返回系統的鈴聲模式。

示例:

audioManager.getRingerMode((err, value) = > {
   if (err) {
       console.error('Failed to obtain the ringer mode.? ${err.message}');
       return;
   }
   console.log('Callback invoked to indicate that the ringer mode is obtained.' + value);
});

getRingerMode

getRingerMode(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型說明
Promise<[AudioRingMode]>Promise回調返回系統的鈴聲模式。

示例:

audioManager.getRingerMode().then((value) = > {
    console.log('Promise returned to indicate that the ringer mode is obtained.' + value);
});

setAudioParameter

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

音頻參數設置,使用callback方式異步返回結果。

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

需要權限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統能力: SystemCapability.Multimedia.Audio.Core

參數:

參數名類型必填說明
keystring被設置的音頻參數的鍵。
valuestring被設置的音頻參數的值。
callbackAsyncCallback回調返回設置成功或失敗。

示例:

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

setAudioParameter

setAudioParameter(key: string, value: string): Promise

音頻參數設置,使用Promise方式異步返回結果。

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

需要權限: ohos.permission.MODIFY_AUDIO_SETTINGS

系統能力: SystemCapability.Multimedia.Audio.Core

參數:

參數名類型必填說明
keystring被設置的音頻參數的鍵。
valuestring被設置的音頻參數的值。

返回值:

類型說明
PromisePromise回調返回設置成功或失敗。

示例:

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

getAudioParameter

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

獲取指定音頻參數值,使用callback方式異步返回結果。

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

系統能力: SystemCapability.Multimedia.Audio.Core

參數:

參數名類型必填說明
keystring待獲取的音頻參數的鍵。
callbackAsyncCallback回調返回獲取的音頻參數的值。

示例:

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

getAudioParameter

getAudioParameter(key: string): Promise

獲取指定音頻參數值,使用Promise方式異步返回結果。

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

系統能力: SystemCapability.Multimedia.Audio.Core

參數:

參數名類型必填說明
keystring待獲取的音頻參數的鍵。

返回值:

類型說明
PromisePromise回調返回獲取的音頻參數的值。

示例:

audioManager.getAudioParameter('key_example').then((value) = > {
    console.log('Promise returned to indicate that the value of the audio parameter is obtained.' + value);
});

getDevices

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback): void

獲取音頻設備列表,使用callback方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceFlag[DeviceFlag]設備類型的flag。
callbackAsyncCallback<[AudioDeviceDescriptors]>回調,返回設備列表。

示例:

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

getDevices

getDevices(deviceFlag: DeviceFlag): Promise

獲取音頻設備列表,使用Promise方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceFlag[DeviceFlag]設備類型的flag。

返回值:

類型說明
Promise<[AudioDeviceDescriptors]>Promise回調返回設備列表。

示例:

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

setDeviceActive

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

設置設備激活狀態,使用callback方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceType[ActiveDeviceType]活躍音頻設備類型。
activeboolean設備激活狀態。
callbackAsyncCallback回調返回設置成功或失敗。

示例:

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

setDeviceActive

setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise

設置設備激活狀態,使用Promise方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceType[ActiveDeviceType]活躍音頻設備類型。
activeboolean設備激活狀態。

返回值:

類型說明
PromisePromise回調返回設置成功或失敗。

示例:

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

isDeviceActive

isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback): void

獲取指定設備的激活狀態,使用callback方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceType[ActiveDeviceType]活躍音頻設備類型。
callbackAsyncCallback回調返回設備的激活狀態。

示例:

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

isDeviceActive

isDeviceActive(deviceType: ActiveDeviceType): Promise

獲取指定設備的激活狀態,使用Promise方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
deviceType[ActiveDeviceType]活躍音頻設備類型。

返回值:

TypeDescription
PromisePromise回調返回設備的激活狀態。

示例:

audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) = > {
    console.log('Promise returned to indicate that the active status of the device is obtained.' + value);
});

setMicrophoneMute

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

設置麥克風靜音狀態,使用callback方式異步返回結果。

需要權限: ohos.permission.MICROPHONE

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
muteboolean待設置的靜音狀態,true為靜音,false為非靜音。
callbackAsyncCallback回調返回設置成功或失敗。

示例:

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

setMicrophoneMute

setMicrophoneMute(mute: boolean): Promise

設置麥克風靜音狀態,使用Promise方式異步返回結果。

需要權限: ohos.permission.MICROPHONE

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
muteboolean待設置的靜音狀態,true為靜音,false為非靜音。

返回值:

類型說明
PromisePromise回調返回設置成功或失敗。

示例:

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

isMicrophoneMute

isMicrophoneMute(callback: AsyncCallback): void

獲取麥克風靜音狀態,使用callback方式異步返回結果。

需要權限: ohos.permission.MICROPHONE

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
callbackAsyncCallback回調返回系統麥克風靜音狀態,true為靜音,false為非靜音。

示例:

audioManager.isMicrophoneMute((err, value) = > {
    if (err) {
        console.error('Failed to obtain the mute status of the microphone. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the mute status of the microphone is obtained.' + value);
});

isMicrophoneMute

isMicrophoneMute(): Promise

獲取麥克風靜音狀態,使用Promise方式異步返回結果。

需要權限: ohos.permission.MICROPHONE

系統能力: SystemCapability.Multimedia.Audio.Device

返回值:

類型說明
PromisePromise回調返回系統麥克風靜音狀態,true為靜音,false為非靜音。

示例:

audioManager.isMicrophoneMute().then((value) = > {
    console.log('Promise returned to indicate that the mute status of the microphone is obtained.', + value);
});

on('volumeChange')8+

on(type: 'volumeChange', callback: Callback): void

監聽系統音量變化事件。

此接口為系統接口,三方應用不支持調用。

系統能力: SystemCapability.Multimedia.Audio.Volume

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'volumeChange'(系統音量變化事件,檢測到系統音量改變時,觸發該事件)。
callbackCallback<[VolumeEvent]>回調方法。

示例:

audioManager.on('volumeChange', (volumeEvent) = > {
    console.log('VolumeType of stream: ' + volumeEvent.volumeType);
    console.log('Volume level: ' + volumeEvent.volume);
    console.log('Whether to updateUI: ' + volumeEvent.updateUi);
});

on('ringerModeChange')8+

on(type: 'ringerModeChange', callback: Callback): void

監聽鈴聲模式變化事件。

此接口為系統接口,三方應用不支持調用。

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'ringerModeChange'(鈴聲模式變化事件,檢測到鈴聲模式改變時,觸發該事件)。
callbackCallback<[AudioRingMode]>回調方法。

示例:

audioManager.on('ringerModeChange', (ringerMode) = > {
    console.log('Updated ringermode: ' + ringerMode);
});

on('deviceChange')

on(type: 'deviceChange', callback: Callback): void

設備更改。音頻設備連接狀態變化。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
typestring訂閱的事件的類型。支持事件:'deviceChange'
callbackCallback<[DeviceChangeAction]>獲取設備更新詳情。

示例:

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('deviceChange')

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

取消訂閱音頻設備連接變化事件。

系統能力: SystemCapability.Multimedia.Audio.Device

參數:

參數名類型必填說明
typestring訂閱的事件的類型。支持事件:'deviceChange'
callbackCallback<[DeviceChangeAction]>獲取設備更新詳情。

示例:

audioManager.off('deviceChange', (deviceChanged) = > {
    console.log("Should be no callback.");
});

on('interrupt')

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

請求焦點并開始監聽音頻打斷事件(當應用程序的音頻被另一個播放事件中斷,回調通知此應用程序)

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring音頻打斷事件回調類型,支持的事件為:'interrupt'(多應用之間第二個應用會打斷第一個應用,觸發該事件)。
interruptAudioInterrupt音頻打斷事件類型的參數。
callbackCallback<[InterruptAction]>音頻打斷事件回調方法。

示例:

var interAudioInterrupt = {
    streamUsage:2,
    contentType:0,
    pauseWhenDucked:true
};
audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) = > {
    if (InterruptAction.actionType === 0) {
        console.log("An event to gain the audio focus starts.");
        console.log("Focus gain event:" + JSON.stringify(InterruptAction));
    }
    if (InterruptAction.actionType === 1) {
        console.log("An audio interruption event starts.");
        console.log("Audio interruption event:" + JSON.stringify(InterruptAction));
    }
});

off('interrupt')

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

取消監聽音頻打斷事件(刪除監聽事件,取消打斷)

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring音頻打斷事件回調類型,支持的事件為:'interrupt'(多應用之間第二個應用會打斷第一個應用,觸發該事件)。
interruptAudioInterrupt音頻打斷事件類型的參數。
callbackCallback<[InterruptAction]>音頻打斷事件回調方法。

示例:

var interAudioInterrupt = {
    streamUsage:2,
    contentType:0,
    pauseWhenDucked:true
};
audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) = > {
    if (InterruptAction.actionType === 0) {
        console.log("An event to release the audio focus starts.");
        console.log("Focus release event:" + JSON.stringify(InterruptAction));
    }
});

setAudioScene8+

setAudioScene(scene: AudioScene, callback: AsyncCallback): void

設置音頻場景模式,使用callback方式異步返回結果。

此接口為系統接口,三方應用不支持調用。

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
scene[AudioScene]音頻場景模式。
callbackAsyncCallback用于返回結果的回調。

示例:

audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) = > {
   if (err) {
       console.error('Failed to set the audio scene mode.? ${err.message}');
       return;
    }
    console.log('Callback invoked to indicate a successful setting of the audio scene mode.');
});

setAudioScene8+

setAudioScene(scene: AudioScene): Promise

設置音頻場景模式,使用Promise方式返回異步結果。

此接口為系統接口,三方應用不支持調用。

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
scene[AudioScene]音頻場景模式。

返回值:

類型說明
Promise用于返回結果的回調。

示例:

audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() = > {
    console.log('Promise returned to indicate a successful setting of the audio scene mode.');
}).catch ((err) = > {
    console.log('Failed to set the audio scene mode');
});

getAudioScene8+

getAudioScene(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Communication

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioScene]>用于返回音頻場景模式的回調。

示例:

audioManager.getAudioScene((err, value) = > {
   if (err) {
       console.error('Failed to obtain the audio scene mode.? ${err.message}');
       return;
   }
   console.log('Callback invoked to indicate that the audio scene mode is obtained.' + value);
});

getAudioScene8+

getAudioScene(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Communication

返回值:

類型說明
Promise<[AudioScene]>用于返回音頻場景模式的回調。

示例:

audioManager.getAudioScene().then((value) = > {
    console.log('Promise returned to indicate that the audio scene mode is obtained.' + value);
}).catch ((err) = > {
    console.log('Failed to obtain the audio scene mode');
});

AudioDeviceDescriptor

描述音頻設備。

系統能力: 以下各項對應的系統能力均為SystemCapability.Multimedia.Audio.Device

名稱類型可讀可寫說明
deviceRole[DeviceRole]設備角色。
deviceType[DeviceType]設備類型。

AudioDeviceDescriptors

設備屬性數組類型,為[AudioDeviceDescriptor]的數組,只讀。

示例:

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

function displayDeviceProp(value) {
    deviceRoleValue = value.deviceRole;
    deviceTypeValue = value.deviceType;

}

var deviceRoleValue = null;
var 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.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
    }
});

AudioRenderer8+

提供音頻渲染的相關接口。在調用AudioRenderer的接口前,需要先通過[createAudioRenderer]創建實例。

屬性

系統能力: SystemCapability.Multimedia.Audio.Renderer

名稱類型可讀可寫說明
state8+[AudioState]音頻渲染器的狀態。

示例:

var state = audioRenderer.state;

getRendererInfo8+

getRendererInfo(callback: AsyncCallback): void

獲取當前被創建的音頻渲染器的信息,使用callback方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioRendererInfo]>返回音頻渲染器的信息。

示例:

audioRenderer.getRendererInfo((err, rendererInfo) = > {
    console.log('Renderer GetRendererInfo:');
    console.log('Renderer content:' + rendererInfo.content);
    console.log('Renderer usage:' + rendererInfo.usage);
    console.log('Renderer flags:' + rendererInfo.rendererFlags);
});

getRendererInfo8+

getRendererInfo(): Promise

獲取當前被創建的音頻渲染器的信息,使用Promise方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
Promise<[AudioRendererInfo]>Promise用于返回音頻渲染器信息。

示例:

var resultFlag = true;
audioRenderer.getRendererInfo().then((rendererInfo) = > {
    console.log('Renderer GetRendererInfo:');
    console.log('Renderer content:' + rendererInfo.content);
    console.log('Renderer usage:' + rendererInfo.usage);
    console.log('Renderer flags:' + rendererInfo.rendererFlags);
}).catch((err) = > {
    console.log('AudioFrameworkRenderLog: RendererInfo :ERROR: '+err.message);
    resultFlag = false;
});

getStreamInfo8+

getStreamInfo(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioStreamInfo]>回調返回音頻流信息。

示例:

audioRenderer.getStreamInfo((err, streamInfo) = > {
    console.log('Renderer GetStreamInfo:');
    console.log('Renderer sampling rate:' + streamInfo.samplingRate);
    console.log('Renderer channel:' + streamInfo.channels);
    console.log('Renderer format:' + streamInfo.sampleFormat);
    console.log('Renderer encoding type:' + streamInfo.encodingType);
});

getStreamInfo8+

getStreamInfo(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
Promise<[AudioStreamInfo]>Promise返回音頻流信息.

示例:

audioRenderer.getStreamInfo().then((streamInfo) = > {
    console.log('Renderer GetStreamInfo:');
    console.log('Renderer sampling rate:' + streamInfo.samplingRate);
    console.log('Renderer channel:' + streamInfo.channels);
    console.log('Renderer format:' + streamInfo.sampleFormat);
    console.log('Renderer encoding type:' + streamInfo.encodingType);
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

start8+

start(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback回調函數。

示例:

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

start8+

start(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise方式異步返回結果。

示例:

audioRenderer.start().then(() = > {
    console.log('Renderer started');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

pause8+

pause(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback返回回調的結果。

示例:

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

pause8+

pause(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise方式異步返回結果。

示例:

audioRenderer.pause().then(() = > {
    console.log('Renderer paused');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

drain8+

drain(callback: AsyncCallback): void

檢查緩沖區是否已被耗盡。使用callback方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback返回回調的結果。

示例:

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

drain8+

drain(): Promise

檢查緩沖區是否已被耗盡。使用Promise方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise方式異步返回結果。

示例:

audioRenderer.drain().then(() = > {
    console.log('Renderer drained successfully');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

stop8+

stop(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback返回回調的結果。

示例:

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

stop8+

stop(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise方式異步返回結果。

示例:

audioRenderer.stop().then(() = > {
    console.log('Renderer stopped successfully');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

release8+

release(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback返回回調的結果。

示例:

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

release8+

release(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise方式異步返回結果。

示例:

audioRenderer.release().then(() = > {
    console.log('Renderer released successfully');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

write8+

write(buffer: ArrayBuffer, callback: AsyncCallback): void

寫入緩沖區。使用callback方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
bufferArrayBuffer要寫入緩沖區的數據。
callbackAsyncCallback回調如果成功,返回寫入的字節數,否則返回errorcode。

示例:

import audio from '@ohos.multimedia.audio';
import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility'

var audioStreamInfo = {
    samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels: audio.AudioChannel.CHANNEL_2,
    sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data)= > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data)= > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info.('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    });
console.info('Buffer size:'+bufferSize);
var context = featureAbility.getContext();
var path = await context.getCacheDir();
var filePath = path+"/StarWars10s-2C-48000-4SW.wav"
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf, (err, writtenbytes) = > {
    if (writtenbytes < 0) {
        console.error('write failed.');
    } else {
       console.log('Actual written bytes: ' + writtenbytes);
    }
});

write8+

write(buffer: ArrayBuffer): Promise

寫入緩沖區。使用Promise方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
PromisePromise返回結果,如果成功,返回寫入的字節數,否則返回errorcode。

示例:

import audio from '@ohos.multimedia.audio';
import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility'

var audioStreamInfo = {
    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels:audio.AudioChannel.CHANNEL_2,
    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) = > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
    });
console.info('BufferSize: ' + bufferSize);
var context = featureAbility.getContext();
var path = await context.getCacheDir();
var filePath = 'data/StarWars10s-2C-48000-4SW.wav';
let ss = fileio.createStreamSync(filePath, 'r');
let buf = new ArrayBuffer(bufferSize);
ss.readSync(buf);
audioRenderer.write(buf).then((writtenbytes) = > {
    if (writtenbytes < 0) {
        console.error('write failed.');
    } else {
        console.log('Actual written bytes: ' + writtenbytes);
    }
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback回調返回時間戳。

示例:

audioRenderer.getAudioTime((err, timestamp) = > {
    console.log('Current timestamp: ' + timestamp);
});

getAudioTime8+

getAudioTime(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型描述
PromisePromise回調返回時間戳。

示例:

audioRenderer.getAudioTime().then((timestamp) = > {
    console.log('Current timestamp: ' + timestamp);
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

getBufferSize8+

getBufferSize(callback: AsyncCallback): void

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback回調返回緩沖區大小。

示例:

var bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) = > {
    if (err) {
        console.error('getBufferSize error');
    }
});

getBufferSize8+

getBufferSize(): Promise

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

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
Promisepromise回調返回緩沖區大小。

示例:

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

var audioStreamInfo = {
    samplingRate:audio.AudioSamplingRate.SAMPLE_RATE_48000,
    channels:audio.AudioChannel.CHANNEL_2,
    sampleFormat.audio.AudioSampleFormat.SAMPLE_FORMAT_S32LE,
    encodingType.audio.AudioEncodingType.ENCODING_TYPE_RAW
}

var audioRendererInfo = {
    content: audio.ContentType.CONTENT_TYPE_SPEECH,
    usage: audio.streamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
    rendererFlags: 1
}

var audioRendererOptions = {
    streamInfo: audioStreamInfo,
    rendererInfo: audioRendererInfo
}
var audioRenderer;
audio.createAudioRenderer(audioRendererOptions).then((data) = > {
    audioRenderer = data;
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRenderLog: AudioRenderer Created: ERROR: '+err.message);
    });
var bufferSize;
audioRenderer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: SUCCESS '+data);
    bufferSize=data;
}).catch((err) = > {
    console.info('AudioFrameworkRenderLog: getBufferSize: ERROR: '+err.message);
});

setRenderRate8+

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

設置音頻渲染速率。使用callback方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
rate[AudioRendererRate]渲染的速率。
callbackAsyncCallback用于返回執行結果的回調。

示例:

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

setRenderRate8+

setRenderRate(rate: AudioRendererRate): Promise

設置音頻渲染速率。使用Promise方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
rate[AudioRendererRate]渲染的速率。

返回值:

類型說明
PromisePromise用于返回執行結果。

示例:

audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() = > {
    console.log('setRenderRate SUCCESS');
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

getRenderRate8+

getRenderRate(callback: AsyncCallback): void

獲取當前渲染速率。使用callback方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioRendererRate]>回調返回渲染速率。

示例:

audioRenderer.getRenderRate((err, renderrate) = > {
    console.log('getRenderRate: ' + renderrate);
});

getRenderRate8+

getRenderRate(): Promise

獲取當前渲染速率。使用Promise方式異步返回結果。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

返回值:

類型說明
Promise<[AudioRendererRate]>Promise回調返回渲染速率。

示例:

audioRenderer.getRenderRate().then((renderRate) = > {
    console.log('getRenderRate: ' + renderRate);
}).catch((err) = > {
    console.log('ERROR: '+err.message);
});

on('interrupt')9+

on(type: 'interrupt', callback: Callback): void

監聽音頻中斷事件。使用callback獲取中斷事件。

系統能力 : SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'interrupt'(中斷事件被觸發,音頻播放被中斷。)
callbackCallback<[InterruptEvent]>被監聽的中斷事件的回調。

示例:

var isPlay;
var started;
audioRenderer.on('interrupt', async(interruptEvent) = > {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
        switch (interruptEvent.hintType) {
            case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
                console.log('Force paused. Stop writing');
                isPlay = false;
                break;
            case audio.InterruptHint.INTERRUPT_HINT_STOP:
                console.log('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.log('Resume force paused renderer or ignore');
                await audioRenderer.start().then(async function () {
                    console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
                    started = true;
                }).catch((err) = > {
                    console.info('AudioInterruptMusic: renderInstant start :ERROR : '+err.message);
                    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.log('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('markReach')8+

on(type: 'markReach', frame: number, callback: (position: number) => {}): void

訂閱到達標記的事件。 當渲染的幀數達到 frame 參數的值時,回調被調用。

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'markReach'。
framenumber觸發事件的幀數。 該值必須大于 0。
callback(position: number) => {}觸發事件時調用的回調。

示例:

audioRenderer.on('markReach', 1000, (position) = > {
    if (position == 1000) {
        console.log('ON Triggered successfully');
    }
});

off('markReach') 8+

off(type: 'markReach'): void

取消訂閱標記事件。

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring要取消訂閱事件的類型。支持的事件為:'markReach'。

示例:

audioRenderer.off('markReach');

on('periodReach') 8+

on(type: "periodReach", frame: number, callback: (position: number) => {}): void

訂閱到達標記的事件。 當渲染的幀數達到 frame 參數的值時,回調被循環調用。

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'periodReach'。
framenumber觸發事件的幀數。 該值必須大于 0。
callback(position: number) => {}觸發事件時調用的回調。

示例:

audioRenderer.on('periodReach', 1000, (position) = > {
    if (position == 1000) {
        console.log('ON Triggered successfully');
    }
});

off('periodReach') 8+

off(type: 'periodReach'): void

取消訂閱標記事件。

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring要取消訂閱事件的類型。支持的事件為:'periodReach'。

示例:

audioRenderer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback): void

訂閱監聽狀態變化。

系統能力: SystemCapability.Multimedia.Audio.Renderer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'stateChange'。
callback[AudioState]返回監聽的狀態。

示例:

audioRenderer.on('stateChange', (state) = > {
    if (state == 1) {
        console.log("audio renderer state is: STATE_PREPARED");
    }
    if (state == 2) {
        console.log("audio renderer state is: STATE_RUNNING");
    }
});

AudioCapturer8+

提供音頻采集的相關接口。在調用AudioCapturer的接口前,需要先通過[createAudioCapturer]創建實例。

屬性

系統能力: SystemCapability.Multimedia.Audio.Capturer

名稱類型可讀可寫說明
state8+[AudioState]音頻采集器狀態。

示例:

var state = audioCapturer.state;

getCapturerInfo8+

getCapturerInfo(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallback使用callback方式異步返回采集器信息。

示例:

audioCapturer.getCapturerInfo((err, capturerInfo) = > {
    if (err) {
        console.error('Failed to get capture info');
    } else {
        console.log('Capturer getCapturerInfo:');
        console.log('Capturer source:' + capturerInfo.source);
        console.log('Capturer flags:' + capturerInfo.capturerFlags);
    }
});

getCapturerInfo8+

getCapturerInfo(): Promise

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

系統能力: 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.log('AudioFrameworkRecLog: CapturerInfo :ERROR: '+err.message);
});

getStreamInfo8+

getStreamInfo(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallback<[AudioStreamInfo]>使用callback方式異步返回流信息。

示例:

audioCapturer.getStreamInfo((err, streamInfo) = > {
    if (err) {
        console.error('Failed to get stream info');
    } else {
        console.log('Capturer GetStreamInfo:');
        console.log('Capturer sampling rate:' + streamInfo.samplingRate);
        console.log('Capturer channel:' + streamInfo.channels);
        console.log('Capturer format:' + streamInfo.sampleFormat);
        console.log('Capturer encoding type:' + streamInfo.encodingType);
    }
});

getStreamInfo8+

getStreamInfo(): Promise

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

系統能力: 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.log('getStreamInfo :ERROR: ' + err.message);
});

start8+

start(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數

參數名類型必填說明
callbackAsyncCallback使用callback方式異步返回結果。

示例:

audioCapturer.start((err) = > {
    if (err) {
        console.error('Capturer start failed.');
    } else {
        console.info('Capturer start success.');
    }
});

start8+

start(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說明
Promise使用Promise方式異步返回結果。

示例:

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

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

var audioCapturerInfo = {
    source: audio.SourceType.SOURCE_TYPE_MIC,
    capturerFlags = 1
}

var audioCapturer;
audio.createAudioCapturer(audioCapturerOptions).then((data) = > {
    audioCapturer = data;
    console.info('AudioFrameworkRecLog: AudioCapturer Created: SUCCESS');
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: AudioCapturer Created: ERROR: '+err.message);
    });
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.message);
    stateFlag=false;
});

stop8+

stop(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallback使用callback方式異步返回結果。

示例:

audioCapturer.stop((err) = > {
    if (err) {
        console.error('Capturer stop failed');
    } else {
        console.log('Capturer stopped.');
    }
});

stop8+

stop(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說明
Promise使用Promise方式異步返回結果。

示例:

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.message);
});

release8+

release(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallbackCallback used to return the result.

示例:

audioCapturer.release((err) = > {
    if (err) {
        console.error('capturer release failed');
    } else {
        console.log('capturer released.');
    }
});

release8+

release(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說明
Promise使用Promise方式異步返回結果。

示例:

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.message);
});

read8+

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

讀入緩沖區。使用callback方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數

參數名類型必填說明
sizenumber讀入的字節數。
isBlockingReadboolean是否阻塞讀操作。
callbackAsyncCallback使用callback方式異步返回緩沖區。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: EROOR: '+err.message);
    });
audioCapturer.read(bufferSize, true, async(err, buffer) = > {
    if (!err) {
        console.log("Success in reading the buffer data");
    }
});

read8+

read(size: number, isBlockingRead: boolean): Promise

讀入緩沖區。使用Promise方式異步返回結果。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
sizenumber讀入的字節數。
isBlockingReadboolean是否阻塞讀操作。

返回值:

類型說明
Promise如果操作成功,返回讀取的緩沖區數據;否則返回錯誤代碼。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: SUCCESS '+data);
    bufferSize = data;
    }).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize: ERROR '+err.message);
    });
console.info('Buffer size: ' + bufferSize);
audioCapturer.read(bufferSize, true).then((buffer) = > {
    console.info('buffer read successfully');
}).catch((err) = > {
    console.info('ERROR : '+err.message);
});

getAudioTime8+

getAudioTime(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallback使用callback方式異步返回結果。

示例:

audioCapturer.getAudioTime((err, timestamp) = > {
    console.log('Current timestamp: ' + timestamp);
});

getAudioTime8+

getAudioTime(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說明
Promise使用Promise方式異步返回結果。

示例:

audioCapturer.getAudioTime().then((audioTime) = > {
    console.info('AudioFrameworkRecLog: AudioCapturer getAudioTime : Success' + audioTime );
}).catch((err) = > {
    console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message);
});

getBufferSize8+

getBufferSize(callback: AsyncCallback): void

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
callbackAsyncCallback使用callback方式異步返回緩沖區大小。

示例:

audioCapturer.getBufferSize((err, bufferSize) = > {
    if (!err) {
        console.log('BufferSize : ' + bufferSize);
        audioCapturer.read(bufferSize, true).then((buffer) = > {
            console.info('Buffer read is ' + buffer );
        }).catch((err) = > {
            console.info('AudioFrameworkRecLog: AudioCapturer Created : ERROR : '+err.message);
        });
    }
});

getBufferSize8+

getBufferSize(): Promise

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

系統能力: SystemCapability.Multimedia.Audio.Capturer

返回值:

類型說明
Promise使用Promise方式異步返回緩沖區大小。

示例:

var bufferSize;
audioCapturer.getBufferSize().then((data) = > {
    console.info('AudioFrameworkRecLog: getBufferSize :SUCCESS '+ data);
    bufferSize = data;
}).catch((err) = > {
    console.info('AudioFrameworkRecLog: getBufferSize :ERROR : '+ err.message);
});

on('markReach')8+

on(type: 'markReach', frame: number, callback: (position: number) => {}): void

訂閱標記到達的事件。 當采集的幀數達到 frame 參數的值時,回調被觸發。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'markReach'。
framenumber觸發事件的幀數。 該值必須大于0。
callbackposition: number) => {}使用callback方式異步返回被觸發事件的回調。

示例:

audioCapturer.on('markReach', 1000, (position) = > {
    if (position == 1000) {
        console.log('ON Triggered successfully');
    }
});

off('markReach')8+

off(type: 'markReach'): void

取消訂閱標記到達的事件。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
typestring取消事件回調類型,支持的事件為:'markReach'。

示例:

audioCapturer.off('markReach');

on('periodReach')8+

on(type: "periodReach", frame: number, callback: (position: number) => {}): void

訂閱到達標記的事件。 當采集的幀數達到 frame 參數的值時,回調被循環調用。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
typestring事件回調類型,支持的事件為:'periodReach'。
framenumber觸發事件的幀數。 該值必須大于0。
callback(position: number) => {}使用callback方式異步返回被觸發事件的回調

示例:

audioCapturer.on('periodReach', 1000, (position) = > {
    if (position == 1000) {
        console.log('ON Triggered successfully');
    }
});

off('periodReach')8+

off(type: 'periodReach'): void

取消訂閱標記到達的事件。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明
typestringYes取消事件回調類型,支持的事件為:'periodReach'。

示例:

audioCapturer.off('periodReach')

on('stateChange') 8+

on(type: 'stateChange', callback: Callback): void

訂閱監聽狀態變化。

系統能力: SystemCapability.Multimedia.Audio.Capturer

參數:

參數名類型必填說明HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
typestring事件回調類型,支持的事件為:'stateChange'。
callback[AudioState]返回監聽的狀態。

搜狗高速瀏覽器截圖20240326151344.png
示例:

audioCapturer.on('stateChange', (state) = > {
    if (state == 1) {
        console.log("audio capturer state is: STATE_PREPARED");
    }
    if (state == 2) {
        console.log("audio capturer state is: STATE_RUNNING");
    }
});

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    9521

    瀏覽量

    157041
  • 開發
    +關注

    關注

    0

    文章

    378

    瀏覽量

    42148
  • 鴻蒙
    +關注

    關注

    60

    文章

    2963

    瀏覽量

    45905
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙開發接口媒體:【@ohos.multimedia.camera (相機管理)】

    本模塊首批接口從API version 9開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
    的頭像 發表于 05-31 09:42 ?2741次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.camera (相機<b class='flag-5'>管理</b>)】

    鴻蒙開發接口媒體:【@ohos.multimedia.image (圖片處理)】

    本模塊首批接口從API version 6開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
    的頭像 發表于 05-31 16:58 ?3015次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.image (圖片處理)】

    鴻蒙原生應用/元服務開發-延遲任務說明(一)

    ) @ohos.backgroundTaskManager (后臺任務管理) @ohos.multimedia.audio (音頻管理) @
    發表于 01-16 14:57

    鴻蒙媒體開發【簡述】

    錄制)、圖片等。 如下圖所示,媒體系統面向應用開發提供音視頻應用、圖庫應用的編程框架接口;面向設備開發提供對接不同硬件芯片適配加速功能;中間以服務形態提供
    發表于 02-28 17:53

    HarmonyOS API Version 7版本特性說明

    ,主要包含音視頻、媒體庫、圖片編解碼等媒體能力,支撐了X1圖庫的商用訴求,同步助力HarmonyOS北向生態拓展。圖5 多媒體子系統新增接口@oho
    發表于 11-30 15:19

    HarmonyOS API Version 7版本特性說明

    ,主要包含音視頻、媒體庫、圖片編解碼等媒體能力,支撐了X1圖庫的商用訴求,同步助力HarmonyOS北向生態拓展。圖5 多媒體子系統新增接口@oho
    發表于 12-01 10:35

    HarmonyOS/OpenHarmony應用開發-ArkTSAPI系統能力SystemCapability列表

    SystemCapability.Multimedia.Audio.Capturer:音頻輸入能力 SystemCapability.Multimedia.Audio.Device:音頻設備
    發表于 08-11 10:08

    HarmonyOS音頻開發指導:使用AudioRenderer開發音頻播放功能

    音頻文件的示例代碼。 import audio from \'@ohos.multimedia.audio\'; import fs from \'@ohos.file.fs\';
    發表于 10-23 14:21

    HarmonyOS多音頻播放并發政策及音頻管理解析

    實例 在使用AudioRoutingManager管理音頻設備前,需要先導入模塊并創建實例。 import audio from \'@ohos.multimedia.audio\';
    發表于 10-25 16:35

    基于開源項目Piasy/RxAndroid音頻進行的ohos移植和開發

    本項目是基于開源項目Piasy/RxAndroidAudio進行ohos移植和開發的。 所屬系列:鴻蒙的第三方組件適配移植 功能:(Functions:) 實現音頻文件錄制和播放 (1
    發表于 04-02 15:52 ?10次下載

    OpenHarmony 3.2 Beta Audio音頻渲染

    一、簡介 Audio是多媒體子系統中的一個重要模塊,其涉及的內容比較多,有音頻的渲染、音頻的采集、音頻的策略
    的頭像 發表于 03-11 14:15 ?1660次閱讀

    OpenHarmony 3.2 Beta Audio——音頻渲染

    點擊藍字 ╳ 關注我們 開源項目 OpenHarmony 是每個人的 OpenHarmony 巴延興 深圳開鴻數字產業發展有限公司 資深OS框架開發工程師 一、簡介 Audio是多媒體子系統中的一個
    的頭像 發表于 03-11 16:40 ?1665次閱讀

    鴻蒙開發實戰:【文件管理

    文件管理相關的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager]?、[@ohos
    的頭像 發表于 03-20 21:57 ?2550次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>實戰:【文件<b class='flag-5'>管理</b>】

    鴻蒙開發接口媒體:【@ohos.multimedia.media (媒體服務)】

    媒體子系統為開發者提供一套簡單且易于理解的接口,使得開發者能夠方便接入系統并使用系統的媒體資源。
    的頭像 發表于 06-06 11:03 ?2352次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.media (<b class='flag-5'>媒體</b>服務)】

    鴻蒙開發接口媒體:【@ohos.multimedia.medialibrary (媒體管理)】

    獲取媒體庫的實例,用于訪問和修改用戶等個人媒體數據信息(如音頻、視頻、圖片、文檔等)。
    的頭像 發表于 06-03 11:52 ?2423次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.medialibrary (<b class='flag-5'>媒體</b>庫<b class='flag-5'>管理</b>)】