音頻管理
音頻管理提供管理音頻的一些基礎(chǔ)能力,包括對(duì)音頻音量、音頻設(shè)備的管理,以及對(duì)音頻數(shù)據(jù)的采集和渲染等。
該模塊提供以下音頻相關(guān)的常用功能:
- [AudioManager]:音頻管理。
- [AudioRenderer]:音頻渲染,用于播放PCM(Pulse Code Modulation)音頻數(shù)據(jù)。
- [AudioCapturer]:音頻采集,用于錄制PCM音頻數(shù)據(jù)。
說(shuō)明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
導(dǎo)入模塊
import audio from '@ohos.multimedia.audio';
audio.getAudioManager
getAudioManager(): AudioManager
獲取音頻管理器。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
返回值:
類型 | 說(shuō)明 |
---|---|
[AudioManager] | 音頻管理類。 |
示例:
var audioManager = audio.getAudioManager();
audio.createAudioRenderer8+
createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback): void
獲取音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù) :
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
options | [AudioRendererOptions] | 是 | 配置渲染器。 |
callback | AsyncCallback<[AudioRenderer]> | 是 | 音頻渲染器對(duì)象。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
options | [AudioRendererOptions] | 是 | 配置渲染器。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioRenderer]> | 音頻渲染器對(duì)象。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
options | [AudioCapturerOptions] | 是 | 配置音頻采集器。 |
callback | AsyncCallback<[AudioCapturer]> | 是 | 音頻采集器對(duì)象。 |
示例:
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 方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
options | [AudioCapturerOptions] | 是 | 配置音頻采集器。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioCapturer]> | 音頻采集器對(duì)象 |
示例:
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
枚舉,音頻流類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Volume
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
VOICE_CALL8+ | 0 | 語(yǔ)音電話。 |
RINGTONE | 2 | 鈴聲。 |
MEDIA | 3 | 媒體。 |
VOICE_ASSISTANT8+ | 9 | 語(yǔ)音助手。 |
DeviceFlag
枚舉,可獲取的設(shè)備種類。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
OUTPUT_DEVICES_FLAG | 1 | 輸出設(shè)備。 |
INPUT_DEVICES_FLAG | 2 | 輸入設(shè)備。 |
ALL_DEVICES_FLAG | 3 | 所有設(shè)備。 |
DeviceRole
枚舉,設(shè)備角色。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
INPUT_DEVICE | 1 | 輸入設(shè)備角色。 |
OUTPUT_DEVICE | 2 | 輸出設(shè)備角色。 |
DeviceType
枚舉,設(shè)備類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
INVALID | 0 | 無(wú)效設(shè)備。 |
EARPIECE | 1 | 聽筒。 |
SPEAKER | 2 | 揚(yáng)聲器。 |
WIRED_HEADSET | 3 | 有線耳機(jī),帶麥克風(fēng)。 |
WIRED_HEADPHONES | 4 | 有線耳機(jī),無(wú)麥克風(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耳機(jī),帶麥克風(fēng)。 |
ActiveDeviceType
枚舉,活躍設(shè)備類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
SPEAKER | 2 | 揚(yáng)聲器。 |
BLUETOOTH_SCO | 7 | 藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。 |
AudioRingMode
枚舉,鈴聲模式。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Communication
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
RINGER_MODE_SILENT | 0 | 靜音模式。 |
RINGER_MODE_VIBRATE | 1 | 震動(dòng)模式。 |
RINGER_MODE_NORMAL | 2 | 響鈴模式。 |
AudioSampleFormat8+
枚舉,音頻采樣格式。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
SAMPLE_FORMAT_INVALID | -1 | 無(wú)效格式。 |
SAMPLE_FORMAT_U8 | 0 | 無(wú)符號(hào)8位整數(shù)。 |
SAMPLE_FORMAT_S16LE | 1 | 帶符號(hào)的16位整數(shù),小尾數(shù)。 |
SAMPLE_FORMAT_S24LE | 2 | 帶符號(hào)的24位整數(shù),小尾數(shù)。 |
SAMPLE_FORMAT_S32LE | 3 | 帶符號(hào)的32位整數(shù),小尾數(shù)。 |
AudioChannel8+
枚舉, 音頻聲道。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
CHANNEL_1 | 0x1 << 0 | 單聲道。 |
CHANNEL_2 | 0x1 << 1 | 雙聲道。 |
AudioSamplingRate8+
枚舉,音頻采樣率。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
SAMPLE_RATE_8000 | 8000 | 采樣率為8000。 |
SAMPLE_RATE_11025 | 11025 | 采樣率為11025。 |
SAMPLE_RATE_12000 | 12000 | 采樣率為12000。 |
SAMPLE_RATE_16000 | 16000 | 采樣率為16000。 |
SAMPLE_RATE_22050 | 22050 | 采樣率為22050。 |
SAMPLE_RATE_24000 | 24000 | 采樣率為24000。 |
SAMPLE_RATE_32000 | 32000 | 采樣率為32000。 |
SAMPLE_RATE_44100 | 44100 | 采樣率為44100。 |
SAMPLE_RATE_48000 | 48000 | 采樣率為48000。 |
SAMPLE_RATE_64000 | 64000 | 采樣率為64000。 |
SAMPLE_RATE_96000 | 96000 | 采樣率為96000。 |
AudioEncodingType8+
枚舉,音頻編碼類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
ENCODING_TYPE_INVALID | -1 | 無(wú)效。 |
ENCODING_TYPE_RAW | 0 | PCM編碼。 |
ContentType
枚舉,音頻內(nèi)容類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
CONTENT_TYPE_UNKNOWN | 0 | 未知類型。 |
CONTENT_TYPE_SPEECH | 1 | 語(yǔ)音。 |
CONTENT_TYPE_MUSIC | 2 | 音樂。 |
CONTENT_TYPE_MOVIE | 3 | 電影。 |
CONTENT_TYPE_SONIFICATION | 4 | 加密類型。 |
CONTENT_TYPE_RINGTONE8+ | 5 | 鈴聲。 |
StreamUsage
枚舉,音頻流使用類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
STREAM_USAGE_UNKNOWN | 0 | 未知類型。 |
STREAM_USAGE_MEDIA | 1 | 音頻。 |
STREAM_USAGE_VOICE_COMMUNICATION | 2 | 語(yǔ)音通信。 |
STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知鈴聲。 |
AudioState8+
枚舉,音頻狀態(tài)。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
STATE_INVALID | -1 | 無(wú)效狀態(tài)。 |
STATE_NEW | 0 | 創(chuàng)建新實(shí)例狀態(tài)。 |
STATE_PREPARED | 1 | 準(zhǔn)備狀態(tài)。 |
STATE_RUNNING | 2 | 可運(yùn)行狀態(tài)。 |
STATE_STOPPED | 3 | 停止?fàn)顟B(tài)。 |
STATE_RELEASED | 4 | 釋放狀態(tài)。 |
STATE_PAUSED | 5 | 暫停狀態(tài)。 |
AudioRendererRate8+
枚舉,音頻渲染速度。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
RENDER_RATE_NORMAL | 0 | 正常速度。 |
RENDER_RATE_DOUBLE | 1 | 2倍速。 |
RENDER_RATE_HALF | 2 | 0.5倍數(shù)。 |
InterruptType
枚舉,中斷類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
INTERRUPT_TYPE_BEGIN | 1 | 音頻播放中斷事件開始。 |
INTERRUPT_TYPE_END | 2 | 音頻播放中斷事件結(jié)束。 |
InterruptForceType9+
枚舉,強(qiáng)制打斷類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
INTERRUPT_FORCE | 0 | 由系統(tǒng)進(jìn)行操作,強(qiáng)制打斷音頻播放。 |
INTERRUPT_SHARE | 1 | 由應(yīng)用進(jìn)行操作,可以選擇打斷或忽略。 |
InterruptHint
枚舉,中斷提示。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
INTERRUPT_HINT_NONE8+ | 0 | 無(wú)提示。 |
INTERRUPT_HINT_RESUME | 1 | 提示音頻恢復(fù)。 |
INTERRUPT_HINT_PAUSE | 2 | 提示音頻暫停。 |
INTERRUPT_HINT_STOP | 3 | 提示音頻停止。 |
INTERRUPT_HINT_DUCK | 4 | 提示音頻躲避。(躲避:音量減弱,而不會(huì)停止) |
INTERRUPT_HINT_UNDUCK8+ | 5 | 提示音量恢復(fù)。 |
InterruptActionType
枚舉,中斷事件返回類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
TYPE_ACTIVATED | 0 | 表示觸發(fā)焦點(diǎn)事件。 |
TYPE_INTERRUPT | 1 | 表示音頻打斷事件。 |
AudioStreamInfo8+
音頻流信息。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
samplingRate | [AudioSamplingRate] | 是 | 音頻文件的采樣率。 |
channels | [AudioChannel] | 是 | 音頻文件的通道數(shù)。 |
sampleFormat | [AudioSampleFormat] | 是 | 音頻采樣格式。 |
encodingType | [AudioEncodingType] | 是 | 音頻編碼格式。 |
AudioRendererInfo8+
音頻渲染器信息。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
content | [ContentType] | 是 | 媒體類型。 |
usage | [StreamUsage] | 是 | 音頻流使用類型。 |
rendererFlags | number | 是 | 音頻渲染器標(biāo)志。 |
AudioRendererOptions8+
音頻渲染器選項(xiàng)信息。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
streamInfo | [AudioStreamInfo] | 是 | 表示音頻流信息。 |
rendererInfo | [AudioRendererInfo] | 是 | 表示渲染器信息。 |
InterruptEvent9+
播放中斷時(shí),應(yīng)用接收的中斷事件。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
eventType | [InterruptType] | 是 | 中斷事件類型,開始或是結(jié)束。 |
forceType | [InterruptForceType] | 是 | 操作是由系統(tǒng)執(zhí)行或是由應(yīng)用程序執(zhí)行。 |
hintType | [InterruptHint] | 是 | 中斷提示。 |
AudioInterrupt
音頻監(jiān)聽事件傳入的參數(shù)。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
streamUsage | [StreamUsage] | 是 | 音頻流使用類型。 |
contentType | [ContentType] | 是 | 音頻打斷媒體類型。 |
pauseWhenDucked | boolean | 是 | 音頻打斷時(shí)是否可以暫停音頻播放(true表示音頻播放可以在音頻打斷期間暫停,false表示相反)。 |
InterruptAction
音頻打斷/獲取焦點(diǎn)事件的回調(diào)方法。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
actionType | [InterruptActionType] | 是 | 事件返回類型。TYPE_ACTIVATED為焦點(diǎn)觸發(fā)事件,TYPE_INTERRUPT為音頻打斷事件。 |
type | [InterruptType] | 否 | 打斷事件類型。 |
hint | [InterruptHint] | 否 | 打斷事件提示。 |
activated | boolean | 否 | 獲得/釋放焦點(diǎn)。true表示焦點(diǎn)獲取/釋放成功,false表示焦點(diǎn)獲得/釋放失敗。 |
VolumeEvent8+
音量改變時(shí),應(yīng)用接收的事件。
此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Volume
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
volume | number | 是 | 音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。 |
updateUi | boolean | 是 | 在UI中顯示音量變化。 |
DeviceChangeAction
描述設(shè)備連接狀態(tài)變化和設(shè)備信息。
**系統(tǒng)能力:**SystemCapability.Multimedia.Audio.Device
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | [DeviceChangeType] | 是 | 設(shè)備連接狀態(tài)變化。 |
deviceDescriptors | [AudioDeviceDescriptors] | 是 | 設(shè)備信息。 |
DeviceChangeType
枚舉,設(shè)備連接狀態(tài)變化。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
CONNECT | 0 | 設(shè)備連接。 |
DISCONNECT | 1 | 斷開設(shè)備連接。 |
AudioCapturerOptions8+
音頻采集器選項(xiàng)信息。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Capturer
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
streamInfo | [AudioStreamInfo] | 是 | 表示音頻流信息。 |
capturerInfo | [AudioCapturerInfo] | 是 | 表示采集器信息。 |
AudioCapturerInfo8+[]()
描述音頻采集器信息。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
名稱 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
source | [SourceType] | 是 | 音源類型。 |
capturerFlags | number | 是 | 音頻采集器標(biāo)志。 |
SourceType8+[]()
枚舉,音源類型。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Core
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
SOURCE_TYPE_INVALID | -1 | 無(wú)效的音頻源。 |
SOURCE_TYPE_MIC | 0 | Mic音頻源。 |
SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 語(yǔ)音通話場(chǎng)景的音頻源。 |
AudioScene8+[]()
枚舉,音頻場(chǎng)景。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Communication
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
AUDIO_SCENE_DEFAULT | 0 | 默認(rèn)音頻場(chǎng)景。 |
AUDIO_SCENE_RINGING | 1 | 響鈴模式。 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
AUDIO_SCENE_PHONE_CALL | 2 | 電話模式。 此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。 |
AUDIO_SCENE_VOICE_CHAT | 3 | 語(yǔ)音聊天模式。 |
AudioManager
管理音頻音量和音頻設(shè)備。在調(diào)用AudioManager的接口前,需要先通過(guò)getAudioManager創(chuàng)建實(shí)例。
setVolume
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback): void
設(shè)置指定流的音量,使用callback方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
volume | number | 是 | 音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。 |
callback | AsyncCallback | 是 | 回調(diào)表示成功還是失敗。 |
示例:
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
設(shè)置指定流的音量,使用Promise方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
volume | number | 是 | 音量等級(jí),可設(shè)置范圍通過(guò)getMinVolume和getMaxVolume獲取。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)表示成功還是失敗。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
callback | AsyncCallback | 是 | 回調(diào)返回音量大小。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回音量大小。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
callback | AsyncCallback | 是 | 回調(diào)返回最小音量。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回最小音量。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
callback | AsyncCallback | 是 | 回調(diào)返回最大音量大小。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回最大音量大小。 |
示例:
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
設(shè)置指定音量流靜音,使用callback方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
mute | boolean | 是 | 靜音狀態(tài),true為靜音,false為非靜音。 |
callback | AsyncCallback | 是 | 回調(diào)表示成功還是失敗。 |
示例:
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
設(shè)置指定音量流靜音,使用Promise方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅設(shè)置鈴聲(即volumeType為AudioVolumeType.RINGTONE)在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
mute | boolean | 是 | 靜音狀態(tài),true為靜音,false為非靜音。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)表示成功還是失敗。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
callback | AsyncCallback | 是 | 回調(diào)返回流靜音狀態(tài),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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回流靜音狀態(tài),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
獲取指定音量流是否為活躍狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
callback | AsyncCallback | 是 | 回調(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.message}');
return;
}
console.log('Callback invoked to indicate that the active status of the stream is obtained.' + value);
});
isActive
isActive(volumeType: AudioVolumeType): Promise
獲取指定音量流是否為活躍狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
volumeType | [AudioVolumeType] | 是 | 音量流類型。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回流的活躍狀態(tài),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
設(shè)置鈴聲模式,使用callback方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
mode | [AudioRingMode] | 是 | 音頻鈴聲模式。 |
callback | AsyncCallback | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
設(shè)置鈴聲模式,使用Promise方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.ACCESS_NOTIFICATION_POLICY,僅在靜音和非靜音狀態(tài)切換時(shí)需要該權(quán)限。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
mode | [AudioRingMode] | 是 | 音頻鈴聲模式。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[AudioRingMode]> | 是 | 回調(diào)返回系統(tǒng)的鈴聲模式。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioRingMode]> | Promise回調(diào)返回系統(tǒng)的鈴聲模式。 |
示例:
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
音頻參數(shù)設(shè)置,使用callback方式異步返回結(jié)果。
本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。
需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
key | string | 是 | 被設(shè)置的音頻參數(shù)的鍵。 |
value | string | 是 | 被設(shè)置的音頻參數(shù)的值。 |
callback | AsyncCallback | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
音頻參數(shù)設(shè)置,使用Promise方式異步返回結(jié)果。
本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。
需要權(quán)限: ohos.permission.MODIFY_AUDIO_SETTINGS
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
key | string | 是 | 被設(shè)置的音頻參數(shù)的鍵。 |
value | string | 是 | 被設(shè)置的音頻參數(shù)的值。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
獲取指定音頻參數(shù)值,使用callback方式異步返回結(jié)果。
本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
key | string | 是 | 待獲取的音頻參數(shù)的鍵。 |
callback | AsyncCallback | 是 | 回調(diào)返回獲取的音頻參數(shù)的值。 |
示例:
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
獲取指定音頻參數(shù)值,使用Promise方式異步返回結(jié)果。
本接口的使用場(chǎng)景為根據(jù)硬件設(shè)備支持能力擴(kuò)展音頻配置。在不同的設(shè)備平臺(tái)上,所支持的音頻參數(shù)會(huì)存在差異。示例代碼內(nèi)使用樣例參數(shù),實(shí)際支持的音頻配置參數(shù)見具體設(shè)備平臺(tái)的資料描述。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
key | string | 是 | 待獲取的音頻參數(shù)的鍵。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回獲取的音頻參數(shù)的值。 |
示例:
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
獲取音頻設(shè)備列表,使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceFlag | [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.message}');
return;
}
console.log('Callback invoked to indicate that the device list is obtained.');
});
getDevices
getDevices(deviceFlag: DeviceFlag): Promise
獲取音頻設(shè)備列表,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceFlag | [DeviceFlag] | 是 | 設(shè)備類型的flag。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioDeviceDescriptors]> | Promise回調(diào)返回設(shè)備列表。 |
示例:
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
設(shè)置設(shè)備激活狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceType | [ActiveDeviceType] | 是 | 活躍音頻設(shè)備類型。 |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
callback | AsyncCallback | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
設(shè)置設(shè)備激活狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceType | [ActiveDeviceType] | 是 | 活躍音頻設(shè)備類型。 |
active | boolean | 是 | 設(shè)備激活狀態(tài)。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
獲取指定設(shè)備的激活狀態(tài),使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceType | [ActiveDeviceType] | 是 | 活躍音頻設(shè)備類型。 |
callback | AsyncCallback | 是 | 回調(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.message}');
return;
}
console.log('Callback invoked to indicate that the active status of the device is obtained.');
});
isDeviceActive
isDeviceActive(deviceType: ActiveDeviceType): Promise
獲取指定設(shè)備的激活狀態(tài),使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
deviceType | [ActiveDeviceType] | 是 | 活躍音頻設(shè)備類型。 |
返回值:
Type | Description |
---|---|
Promise | Promise回調(diào)返回設(shè)備的激活狀態(tài)。 |
示例:
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
設(shè)置麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
mute | boolean | 是 | 待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。 |
callback | AsyncCallback | 是 | 回調(diào)返回設(shè)置成功或失敗。 |
示例:
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
設(shè)置麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
mute | boolean | 是 | 待設(shè)置的靜音狀態(tài),true為靜音,false為非靜音。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回設(shè)置成功或失敗。 |
示例:
audioManager.setMicrophoneMute(true).then(() = > {
console.log('Promise returned to indicate that the microphone is muted.');
});
isMicrophoneMute
isMicrophoneMute(callback: AsyncCallback): void
獲取麥克風(fēng)靜音狀態(tài),使用callback方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調(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.message}');
return;
}
console.log('Callback invoked to indicate that the mute status of the microphone is obtained.' + value);
});
isMicrophoneMute
isMicrophoneMute(): Promise
獲取麥克風(fēng)靜音狀態(tài),使用Promise方式異步返回結(jié)果。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise回調(diào)返回系統(tǒng)麥克風(fēng)靜音狀態(tài),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
監(jiān)聽系統(tǒng)音量變化事件。
此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Volume
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'volumeChange'(系統(tǒng)音量變化事件,檢測(cè)到系統(tǒng)音量改變時(shí),觸發(fā)該事件)。 |
callback | Callback<[VolumeEvent]> | 是 | 回調(diào)方法。 |
示例:
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
監(jiān)聽鈴聲模式變化事件。
此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'ringerModeChange'(鈴聲模式變化事件,檢測(cè)到鈴聲模式改變時(shí),觸發(fā)該事件)。 |
callback | Callback<[AudioRingMode]> | 是 | 回調(diào)方法。 |
示例:
audioManager.on('ringerModeChange', (ringerMode) = > {
console.log('Updated ringermode: ' + ringerMode);
});
on('deviceChange')
on(type: 'deviceChange', callback: Callback): void
設(shè)備更改。音頻設(shè)備連接狀態(tài)變化。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
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('deviceChange')
off(type: 'deviceChange', callback?: Callback): void
取消訂閱音頻設(shè)備連接變化事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Device
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 訂閱的事件的類型。支持事件:'deviceChange' |
callback | Callback<[DeviceChangeAction]> | 否 | 獲取設(shè)備更新詳情。 |
示例:
audioManager.off('deviceChange', (deviceChanged) = > {
console.log("Should be no callback.");
});
on('interrupt')
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback): void
請(qǐng)求焦點(diǎn)并開始監(jiān)聽音頻打斷事件(當(dāng)應(yīng)用程序的音頻被另一個(gè)播放事件中斷,回調(diào)通知此應(yīng)用程序)
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個(gè)應(yīng)用會(huì)打斷第一個(gè)應(yīng)用,觸發(fā)該事件)。 |
interrupt | AudioInterrupt | 是 | 音頻打斷事件類型的參數(shù)。 |
callback | Callback<[InterruptAction]> | 是 | 音頻打斷事件回調(diào)方法。 |
示例:
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
取消監(jiān)聽音頻打斷事件(刪除監(jiān)聽事件,取消打斷)
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 音頻打斷事件回調(diào)類型,支持的事件為:'interrupt'(多應(yīng)用之間第二個(gè)應(yīng)用會(huì)打斷第一個(gè)應(yīng)用,觸發(fā)該事件)。 |
interrupt | AudioInterrupt | 是 | 音頻打斷事件類型的參數(shù)。 |
callback | Callback<[InterruptAction]> | 否 | 音頻打斷事件回調(diào)方法。 |
示例:
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
設(shè)置音頻場(chǎng)景模式,使用callback方式異步返回結(jié)果。
此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
scene | [AudioScene] | 是 | 音頻場(chǎng)景模式。 |
callback | AsyncCallback | 是 | 用于返回結(jié)果的回調(diào)。 |
示例:
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
設(shè)置音頻場(chǎng)景模式,使用Promise方式返回異步結(jié)果。
此接口為系統(tǒng)接口,三方應(yīng)用不支持調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
scene | [AudioScene] | 是 | 音頻場(chǎng)景模式。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 用于返回結(jié)果的回調(diào)。 |
示例:
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
獲取音頻場(chǎng)景模式,使用callback方式返回異步結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[AudioScene]> | 是 | 用于返回音頻場(chǎng)景模式的回調(diào)。 |
示例:
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
獲取音頻場(chǎng)景模式,使用Promise方式返回異步結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Communication
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioScene]> | 用于返回音頻場(chǎng)景模式的回調(diào)。 |
示例:
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
描述音頻設(shè)備。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Multimedia.Audio.Device
名稱 | 類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
deviceRole | [DeviceRole] | 是 | 否 | 設(shè)備角色。 |
deviceType | [DeviceType] | 是 | 否 | 設(shè)備類型。 |
AudioDeviceDescriptors
設(shè)備屬性數(shù)組類型,為[AudioDeviceDescriptor]的數(shù)組,只讀。
示例:
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+
提供音頻渲染的相關(guān)接口。在調(diào)用AudioRenderer的接口前,需要先通過(guò)[createAudioRenderer]創(chuàng)建實(shí)例。
屬性
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
名稱 | 類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
state8+ | [AudioState] | 是 | 否 | 音頻渲染器的狀態(tài)。 |
示例:
var state = audioRenderer.state;
getRendererInfo8+
getRendererInfo(callback: AsyncCallback): void
獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[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
獲取當(dāng)前被創(chuàng)建的音頻渲染器的信息,使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
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方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[AudioStreamInfo]> | 是 | 回調(diào)返回音頻流信息。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
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
啟動(dòng)音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調(diào)函數(shù)。 |
示例:
audioRenderer.start((err) = > {
if (err) {
console.error('Renderer start failed.');
} else {
console.info('Renderer start success.');
}
});
start8+
start(): Promise
啟動(dòng)音頻渲染器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise方式異步返回結(jié)果。 |
示例:
audioRenderer.start().then(() = > {
console.log('Renderer started');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
pause8+
pause(callback: AsyncCallback): void
暫停渲染。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 返回回調(diào)的結(jié)果。 |
示例:
audioRenderer.pause((err) = > {
if (err) {
console.error('Renderer pause failed');
} else {
console.log('Renderer paused.');
}
});
pause8+
pause(): Promise
暫停渲染。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise方式異步返回結(jié)果。 |
示例:
audioRenderer.pause().then(() = > {
console.log('Renderer paused');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
drain8+
drain(callback: AsyncCallback): void
檢查緩沖區(qū)是否已被耗盡。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 返回回調(diào)的結(jié)果。 |
示例:
audioRenderer.drain((err) = > {
if (err) {
console.error('Renderer drain failed');
} else {
console.log('Renderer drained.');
}
});
drain8+
drain(): Promise
檢查緩沖區(qū)是否已被耗盡。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise方式異步返回結(jié)果。 |
示例:
audioRenderer.drain().then(() = > {
console.log('Renderer drained successfully');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
stop8+
stop(callback: AsyncCallback): void
停止渲染。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 返回回調(diào)的結(jié)果。 |
示例:
audioRenderer.stop((err) = > {
if (err) {
console.error('Renderer stop failed');
} else {
console.log('Renderer stopped.');
}
});
stop8+
stop(): Promise
停止渲染。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise方式異步返回結(jié)果。 |
示例:
audioRenderer.stop().then(() = > {
console.log('Renderer stopped successfully');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
release8+
release(callback: AsyncCallback): void
釋放音頻渲染器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 返回回調(diào)的結(jié)果。 |
示例:
audioRenderer.release((err) = > {
if (err) {
console.error('Renderer release failed');
} else {
console.log('Renderer released.');
}
});
release8+
release(): Promise
釋放渲染器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise方式異步返回結(jié)果。 |
示例:
audioRenderer.release().then(() = > {
console.log('Renderer released successfully');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
write8+
write(buffer: ArrayBuffer, callback: AsyncCallback): void
寫入緩沖區(qū)。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
buffer | ArrayBuffer | 是 | 要寫入緩沖區(qū)的數(shù)據(jù)。 |
callback | AsyncCallback | 是 | 回調(diào)如果成功,返回寫入的字節(jié)數(shù),否則返回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
寫入緩沖區(qū)。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise返回結(jié)果,如果成功,返回寫入的字節(jié)數(shù),否則返回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
獲取時(shí)間戳(從 1970 年 1 月 1 日開始)。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調(diào)返回時(shí)間戳。 |
示例:
audioRenderer.getAudioTime((err, timestamp) = > {
console.log('Current timestamp: ' + timestamp);
});
getAudioTime8+
getAudioTime(): Promise
獲取時(shí)間戳(從 1970 年 1 月 1 日開始)。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 描述 |
---|---|
Promise | Promise回調(diào)返回時(shí)間戳。 |
示例:
audioRenderer.getAudioTime().then((timestamp) = > {
console.log('Current timestamp: ' + timestamp);
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
getBufferSize8+
getBufferSize(callback: AsyncCallback): void
獲取音頻渲染器的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 回調(diào)返回緩沖區(qū)大小。 |
示例:
var bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) = > {
if (err) {
console.error('getBufferSize error');
}
});
getBufferSize8+
getBufferSize(): Promise
獲取音頻渲染器的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | promise回調(diào)返回緩沖區(qū)大小。 |
示例:
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
設(shè)置音頻渲染速率。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
rate | [AudioRendererRate] | 是 | 渲染的速率。 |
callback | AsyncCallback | 是 | 用于返回執(zhí)行結(jié)果的回調(diào)。 |
示例:
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
設(shè)置音頻渲染速率。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
rate | [AudioRendererRate] | 是 | 渲染的速率。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise用于返回執(zhí)行結(jié)果。 |
示例:
audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() = > {
console.log('setRenderRate SUCCESS');
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
getRenderRate8+
getRenderRate(callback: AsyncCallback): void
獲取當(dāng)前渲染速率。使用callback方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[AudioRendererRate]> | 是 | 回調(diào)返回渲染速率。 |
示例:
audioRenderer.getRenderRate((err, renderrate) = > {
console.log('getRenderRate: ' + renderrate);
});
getRenderRate8+
getRenderRate(): Promise
獲取當(dāng)前渲染速率。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[AudioRendererRate]> | Promise回調(diào)返回渲染速率。 |
示例:
audioRenderer.getRenderRate().then((renderRate) = > {
console.log('getRenderRate: ' + renderRate);
}).catch((err) = > {
console.log('ERROR: '+err.message);
});
on('interrupt')9+
on(type: 'interrupt', callback: Callback): void
監(jiān)聽音頻中斷事件。使用callback獲取中斷事件。
系統(tǒng)能力 : SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'interrupt'(中斷事件被觸發(fā),音頻播放被中斷。) |
callback | Callback<[InterruptEvent]> | 是 | 被監(jiān)聽的中斷事件的回調(diào)。 |
示例:
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
訂閱到達(dá)標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'markReach'。 |
frame | number | 是 | 觸發(fā)事件的幀數(shù)。 該值必須大于 0。 |
callback | (position: number) => {} | 是 | 觸發(fā)事件時(shí)調(diào)用的回調(diào)。 |
示例:
audioRenderer.on('markReach', 1000, (position) = > {
if (position == 1000) {
console.log('ON Triggered successfully');
}
});
off('markReach') 8+
off(type: 'markReach'): void
取消訂閱標(biāo)記事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 要取消訂閱事件的類型。支持的事件為:'markReach'。 |
示例:
audioRenderer.off('markReach');
on('periodReach') 8+
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
訂閱到達(dá)標(biāo)記的事件。 當(dāng)渲染的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被循環(huán)調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'periodReach'。 |
frame | number | 是 | 觸發(fā)事件的幀數(shù)。 該值必須大于 0。 |
callback | (position: number) => {} | 是 | 觸發(fā)事件時(shí)調(diào)用的回調(diào)。 |
示例:
audioRenderer.on('periodReach', 1000, (position) = > {
if (position == 1000) {
console.log('ON Triggered successfully');
}
});
off('periodReach') 8+
off(type: 'periodReach'): void
取消訂閱標(biāo)記事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 要取消訂閱事件的類型。支持的事件為:'periodReach'。 |
示例:
audioRenderer.off('periodReach')
on('stateChange') 8+
on(type: 'stateChange', callback: Callback): void
訂閱監(jiān)聽狀態(tài)變化。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Renderer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'stateChange'。 |
callback | [AudioState] | 是 | 返回監(jiān)聽的狀態(tài)。 |
示例:
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+
提供音頻采集的相關(guān)接口。在調(diào)用AudioCapturer的接口前,需要先通過(guò)[createAudioCapturer]創(chuàng)建實(shí)例。
屬性
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
名稱 | 類型 | 可讀 | 可寫 | 說(shuō)明 |
---|---|---|---|---|
state8+ | [AudioState] | 是 | 否 | 音頻采集器狀態(tài)。 |
示例:
var state = audioCapturer.state;
getCapturerInfo8+
getCapturerInfo(callback: AsyncCallback): void
獲取采集器信息。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 使用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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
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
啟動(dòng)音頻采集器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù)
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
audioCapturer.start((err) = > {
if (err) {
console.error('Capturer start failed.');
} else {
console.info('Capturer start success.');
}
});
start8+
start(): Promise
啟動(dòng)音頻采集器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 使用Promise方式異步返回結(jié)果。 |
示例:
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方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
audioCapturer.stop((err) = > {
if (err) {
console.error('Capturer stop failed');
} else {
console.log('Capturer stopped.');
}
});
stop8+
stop(): Promise
停止采集。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 使用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.message);
});
release8+
release(callback: AsyncCallback): void
釋放采集器。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | Callback used to return the result. |
示例:
audioCapturer.release((err) = > {
if (err) {
console.error('capturer release failed');
} else {
console.log('capturer released.');
}
});
release8+
release(): Promise
釋放采集器。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 使用Promise方式異步返回結(jié)果。 |
示例:
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
讀入緩沖區(qū)。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù)
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
size | number | 是 | 讀入的字節(jié)數(shù)。 |
isBlockingRead | boolean | 是 | 是否阻塞讀操作。 |
callback | AsyncCallback | 是 | 使用callback方式異步返回緩沖區(qū)。 |
示例:
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
讀入緩沖區(qū)。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
size | number | 是 | 讀入的字節(jié)數(shù)。 |
isBlockingRead | boolean | 是 | 是否阻塞讀操作。 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 如果操作成功,返回讀取的緩沖區(qū)數(shù)據(jù);否則返回錯(cuò)誤代碼。 |
示例:
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
獲取時(shí)間戳(從1970年1月1日開始),單位為納秒。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 使用callback方式異步返回結(jié)果。 |
示例:
audioCapturer.getAudioTime((err, timestamp) = > {
console.log('Current timestamp: ' + timestamp);
});
getAudioTime8+
getAudioTime(): Promise
獲取時(shí)間戳(從1970年1月1日開始),單位為納秒。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 使用Promise方式異步返回結(jié)果。 |
示例:
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
獲取采集器合理的最小緩沖區(qū)大小。使用callback方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback | 是 | 使用callback方式異步返回緩沖區(qū)大小。 |
示例:
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
獲取采集器合理的最小緩沖區(qū)大小。使用Promise方式異步返回結(jié)果。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | 使用Promise方式異步返回緩沖區(qū)大小。 |
示例:
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
訂閱標(biāo)記到達(dá)的事件。 當(dāng)采集的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被觸發(fā)。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'markReach'。 |
frame | number | 是 | 觸發(fā)事件的幀數(shù)。 該值必須大于0。 |
callback | position: number) => {} | 是 | 使用callback方式異步返回被觸發(fā)事件的回調(diào)。 |
示例:
audioCapturer.on('markReach', 1000, (position) = > {
if (position == 1000) {
console.log('ON Triggered successfully');
}
});
off('markReach')8+
off(type: 'markReach'): void
取消訂閱標(biāo)記到達(dá)的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 取消事件回調(diào)類型,支持的事件為:'markReach'。 |
示例:
audioCapturer.off('markReach');
on('periodReach')8+
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
訂閱到達(dá)標(biāo)記的事件。 當(dāng)采集的幀數(shù)達(dá)到 frame 參數(shù)的值時(shí),回調(diào)被循環(huán)調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'periodReach'。 |
frame | number | 是 | 觸發(fā)事件的幀數(shù)。 該值必須大于0。 |
callback | (position: number) => {} | 是 | 使用callback方式異步返回被觸發(fā)事件的回調(diào) |
示例:
audioCapturer.on('periodReach', 1000, (position) = > {
if (position == 1000) {
console.log('ON Triggered successfully');
}
});
off('periodReach')8+
off(type: 'periodReach'): void
取消訂閱標(biāo)記到達(dá)的事件。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
type | string | Yes | 取消事件回調(diào)類型,支持的事件為:'periodReach'。 |
示例:
audioCapturer.off('periodReach')
on('stateChange') 8+
on(type: 'stateChange', callback: Callback): void
訂閱監(jiān)聽狀態(tài)變化。
系統(tǒng)能力: SystemCapability.Multimedia.Audio.Capturer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
---|---|---|---|
type | string | 是 | 事件回調(diào)類型,支持的事件為:'stateChange'。 |
callback | [AudioState] | 是 | 返回監(jiān)聽的狀態(tài)。 |
示例:
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");
}
});
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8257瀏覽量
149960 -
開發(fā)
+關(guān)注
關(guān)注
0文章
357瀏覽量
40737 -
鴻蒙
+關(guān)注
關(guān)注
56文章
2267瀏覽量
42489
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論