媒體服務(wù)
說明: 本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
媒體子系統(tǒng)為開發(fā)者提供一套簡(jiǎn)單且易于理解的接口,使得開發(fā)者能夠方便接入系統(tǒng)并使用系統(tǒng)的媒體資源。
后續(xù)將提供以下功能:DataSource音視頻播放、音視頻編解碼、容器封裝解封裝、媒體能力查詢等功能。
導(dǎo)入模塊
import media from '@ohos.multimedia.media';
media.createAudioPlayer
createAudioPlayer(): [AudioPlayer]
同步方式創(chuàng)建音頻播放實(shí)例。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
返回值:
類型 | 說明 |
---|---|
[AudioPlayer] | 返回AudioPlayer類實(shí)例,失敗時(shí)返回null??捎糜谝纛l播放、暫停、停止等操作。 |
示例:
let audioPlayer = media.createAudioPlayer();
media.createVideoPlayer8+
createVideoPlayer(callback: AsyncCallback<[VideoPlayer]>): void
異步方式創(chuàng)建視頻播放實(shí)例,通過注冊(cè)回調(diào)函數(shù)獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<[VideoPlayer]> | 是 | 異步創(chuàng)建視頻播放實(shí)例回調(diào)方法。 |
示例:
let videoPlayer
media.createVideoPlayer((error, video) = > {
if (typeof(video) != 'undefined') {
videoPlayer = video;
console.info('video createVideoPlayer success');
} else {
console.info(`video createVideoPlayer fail, error:${error.message}`);
}
});
media.createVideoPlayer8+
createVideoPlayer(): Promise<[VideoPlayer]>
異步方式創(chuàng)建視頻播放實(shí)例,通過Promise獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise<[VideoPlayer]> | 異步創(chuàng)建視頻播放實(shí)例Promise返回值。 |
示例:
let videoPlayer
media.createVideoPlayer().then((video) = > {
if (typeof(video) != 'undefined') {
videoPlayer = video;
console.info('video createVideoPlayer success');
} else {
console.info('video createVideoPlayer fail');
}
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
media.createAudioRecorder
createAudioRecorder(): AudioRecorder
創(chuàng)建音頻錄制的實(shí)例來控制音頻的錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
返回值:
類型 | 說明 |
---|---|
[AudioRecorder] | 返回AudioRecorder類實(shí)例,失敗時(shí)返回null。 |
示例:
let audioRecorder = media.createAudioRecorder();
media.createVideoRecorder9+
createVideoRecorder(callback: AsyncCallback<[VideoRecorder]>): void
異步方式創(chuàng)建視頻錄制實(shí)例。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<[VideoRecorder]> | 是 | 異步創(chuàng)建視頻錄制實(shí)例回調(diào)方法。 |
示例:
let videoRecorder
media.createVideoRecorder((error, video) = > {
if (typeof(video) != 'undefined') {
videoRecorder = video;
console.info('video createVideoRecorder success');
} else {
console.info(`video createVideoRecorder fail, error:${error.message}`);
}
});
media.createVideoRecorder9+
createVideoRecorder(): Promise<[VideoRecorder]>
異步方式創(chuàng)建視頻錄制實(shí)例。通過Promise獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise<[VideoRecorder]> | 異步創(chuàng)建視頻錄制實(shí)例Promise返回值。 |
示例:
let videoRecorder
media.createVideoRecorder().then((video) = > {
if (typeof(video) != 'undefined') {
videoRecorder = video;
console.info('video createVideoRecorder success');
} else {
console.info('video createVideoRecorder fail');
}
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
MediaErrorCode8+
媒體服務(wù)錯(cuò)誤類型枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
MSERR_OK | 0 | 表示操作成功。 |
MSERR_NO_MEMORY | 1 | 表示申請(qǐng)內(nèi)存失敗,系統(tǒng)可能無(wú)可用內(nèi)存。 |
MSERR_OPERATION_NOT_PERMIT | 2 | 表示無(wú)權(quán)限執(zhí)行此操作。 |
MSERR_INVALID_VAL | 3 | 表示傳入入?yún)o(wú)效。 |
MSERR_IO | 4 | 表示發(fā)生IO錯(cuò)誤。 |
MSERR_TIMEOUT | 5 | 表示操作超時(shí)。 |
MSERR_UNKNOWN | 6 | 表示未知錯(cuò)誤。 |
MSERR_SERVICE_DIED | 7 | 表示服務(wù)端失效。 |
MSERR_INVALID_STATE | 8 | 表示在當(dāng)前狀態(tài)下,不允許執(zhí)行此操作。 |
MSERR_UNSUPPORTED | 9 | 表示在當(dāng)前版本下,不支持此操作。 |
MediaType8+
媒體類型枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
MEDIA_TYPE_AUD | 0 | 表示音頻。 |
MEDIA_TYPE_VID | 1 | 表示視頻。 |
[CodecMimeType8+
Codec MIME類型枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
VIDEO_H263 | 'video/h263' | 表示視頻/h263類型。 |
VIDEO_AVC | 'video/avc' | 表示視頻/avc類型。 |
VIDEO_MPEG2 | 'video/mpeg2' | 表示視頻/mpeg2類型。 |
VIDEO_MPEG4 | 'video/mp4v-es' | 表示視頻/mpeg4類型。 |
VIDEO_VP8 | 'video/x-vnd.on2.vp8' | 表示視頻/vp8類型。 |
AUDIO_AAC | "audio/mp4a-latm" | 表示音頻/mp4a-latm類型。 |
AUDIO_VORBIS | 'audio/vorbis' | 表示音頻/vorbis類型。 |
AUDIO_FLAC | 'audio/flac' | 表示音頻/flac類型。 |
MediaDescriptionKey8+
媒體信息描述枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
MD_KEY_TRACK_INDEX | "track_index" | 表示軌道序號(hào),其對(duì)應(yīng)鍵值類型為number。 |
MD_KEY_TRACK_TYPE | "track_type" | 表示軌道類型,其對(duì)應(yīng)鍵值類型為number,參考[MediaType]。 |
MD_KEY_CODEC_MIME | "codec_mime" | 表示codec_mime類型,其對(duì)應(yīng)鍵值類型為string。 |
MD_KEY_DURATION | "duration" | 表示媒體時(shí)長(zhǎng),其對(duì)應(yīng)鍵值類型為number,單位為毫秒(ms)。 |
MD_KEY_BITRATE | "bitrate" | 表示比特率,其對(duì)應(yīng)鍵值類型為number,單位為比特率(bps)。 |
MD_KEY_WIDTH | "width" | 表示視頻寬度,其對(duì)應(yīng)鍵值類型為number,單位為像素(px)。 |
MD_KEY_HEIGHT | "height" | 表示視頻高度,其對(duì)應(yīng)鍵值類型為number,單位為像素(px)。 |
MD_KEY_FRAME_RATE | "frame_rate" | 表示視頻幀率,其對(duì)應(yīng)鍵值類型為number,單位為100幀每秒(100fps)。 |
MD_KEY_AUD_CHANNEL_COUNT | "channel_count" | 表示聲道數(shù),其對(duì)應(yīng)鍵值類型為number。 |
MD_KEY_AUD_SAMPLE_RATE | "sample_rate" | 表示采樣率,其對(duì)應(yīng)鍵值類型為number,單位為赫茲(Hz)。 |
BufferingInfoType8+
緩存事件類型枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
BUFFERING_START | 1 | 表示開始緩存。 |
BUFFERING_END | 2 | 表示結(jié)束緩存。 |
BUFFERING_PERCENT | 3 | 表示緩存百分比。 |
CACHED_DURATION | 4 | 表示緩存時(shí)長(zhǎng),單位為毫秒(ms)。 |
AudioPlayer
音頻播放管理類,用于管理和播放音頻媒體。在調(diào)用AudioPlayer的方法前,需要先通過[createAudioPlayer()]構(gòu)建一個(gè)[AudioPlayer]實(shí)例。
屬性
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.AudioPlayer。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
src | string | 是 | 是 | 音頻媒體URI,支持當(dāng)前主流的音頻格式(mp4、aac、mp3、ogg、wav)。 支持路徑示例 : 1、fd類型播放:fd://xx2、http網(wǎng)絡(luò)播放:http://xx3、hls網(wǎng)絡(luò)播放路徑:開發(fā)中 注意事項(xiàng) : 使用媒體素材需要獲取讀權(quán)限,否則無(wú)法正常播放。 |
loop | boolean | 是 | 是 | 音頻循環(huán)播放屬性,設(shè)置為'true'表示循環(huán)播放。 |
currentTime | number | 是 | 否 | 音頻的當(dāng)前播放位置。 |
duration | number | 是 | 否 | 音頻時(shí)長(zhǎng)。 |
state | [AudioState] | 是 | 否 | 音頻播放的狀態(tài)。 |
play
play(): void
開始播放音頻資源,需在[dataLoad]事件成功觸發(fā)后,才能調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
示例:
audioPlayer.on('play', () = > { //設(shè)置'play'事件回調(diào)
console.log('audio play success');
});
audioPlayer.play();
pause
pause(): void
暫停播放音頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
示例:
audioPlayer.on('pause', () = > { //設(shè)置'pause'事件回調(diào)
console.log('audio pause success');
});
audioPlayer.pause();
stop
stop(): void
停止播放音頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
示例:
audioPlayer.on('stop', () = > { //設(shè)置'stop'事件回調(diào)
console.log('audio stop success');
});
audioPlayer.stop();
reset7+
reset(): void
切換播放音頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
示例:
audioPlayer.on('reset', () = > { //設(shè)置'reset'事件回調(diào)
console.log('audio reset success');
});
audioPlayer.reset();
seek
seek(timeMs: number): void
跳轉(zhuǎn)到指定播放位置。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
timeMs | number | 是 | 指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。 |
示例:
audioPlayer.on('timeUpdate', (seekDoneTime) = > { //設(shè)置'timeUpdate'事件回調(diào)
if (typeof (seekDoneTime) == 'undefined') {
console.info('audio seek fail');
return;
}
console.log('audio seek success. seekDoneTime: ' + seekDoneTime);
});
audioPlayer.seek(30000); //seek到30000ms的位置
setVolume
setVolume(vol: number): void
設(shè)置音量。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
vol | number | 是 | 指定的相對(duì)音量大小,取值范圍為[0.00-1.00],1表示最大音量,即100%。 |
示例:
audioPlayer.on('volumeChange', () = > { //設(shè)置'volumeChange'事件回調(diào)
console.log('audio volumeChange success');
});
audioPlayer.setVolume(1); //設(shè)置音量到100%
release
release(): void
釋放音頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
示例:
audioPlayer.release();
audioPlayer = undefined;
getTrackDescription8+
getTrackDescription(callback: AsyncCallback>): void
通過回調(diào)方式獲取音頻軌道信息。需在[dataLoad]事件成功觸發(fā)后,才能調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback> | 是 | 獲取音頻軌道信息回調(diào)方法。 |
示例:
function printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('audio key is ' + item);
console.info('audio value is ' + property);
}
}
audioPlayer.getTrackDescription((error, arrlist) = > {
if (typeof (arrlist) != 'undefined') {
for (let i = 0; i < arrlist.length; i++) {
printfDescription(arrlist[i]);
}
} else {
console.log(`audio getTrackDescription fail, error:${error.message}`);
}
});
getTrackDescription8+[]()
getTrackDescription(): Promise>
通過Promise方式獲取音頻軌道信息。需在[dataLoad]事件成功觸發(fā)后,才能調(diào)用
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
返回值:
類型 | 說明 |
---|---|
Promise> | 獲取音頻軌道信息Promise返回值。 |
示例:
function printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('audio key is ' + item);
console.info('audio value is ' + property);
}
}
audioPlayer.getTrackDescription().then((arrlist) = > {
if (typeof (arrlist) != 'undefined') {
arrayDescription = arrlist;
} else {
console.log('audio getTrackDescription fail');
}
}).catch((error) = > {
console.info(`audio catchCallback, error:${error.message}`);
});
for (let i = 0; i < arrayDescription.length; i++) {
printfDescription(arrayDescription[i]);
}
on('bufferingUpdate')8+
on(type: 'bufferingUpdate', callback: (infoType: [BufferingInfoType], value: number) => void): void
開始訂閱音頻緩存更新事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 音頻緩存事件回調(diào)類型,支持的事件:'bufferingUpdate'。 |
callback | function | 是 | 音頻緩存事件回調(diào)方法。 [BufferingInfoType]為BUFFERING_PERCENT或CACHED_DURATION時(shí),value值有效,否則固定為0。 |
示例:
audioPlayer.on('bufferingUpdate', (infoType, value) = > {
console.log('audio bufferingInfo type: ' + infoType);
console.log('audio bufferingInfo value: ' + value);
});
on('play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange')[]()
on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void
開始訂閱音頻播放事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 播放事件回調(diào)類型,支持的事件包括:'play' |
callback | () => void | 是 | 播放事件回調(diào)方法。 |
示例:
let audioPlayer = media.createAudioPlayer(); //創(chuàng)建一個(gè)音頻播放實(shí)例
audioPlayer.on('dataLoad', () = > { //設(shè)置'dataLoad'事件回調(diào),src屬性設(shè)置成功后,觸發(fā)此回調(diào)
console.info('audio set source success');
audioPlayer.play(); //開始播放,并觸發(fā)'play'事件回調(diào)
});
audioPlayer.on('play', () = > { //設(shè)置'play'事件回調(diào)
console.info('audio play success');
audioPlayer.seek(30000); //調(diào)用seek方法,并觸發(fā)'timeUpdate'事件回調(diào)
});
audioPlayer.on('pause', () = > { //設(shè)置'pause'事件回調(diào)
console.info('audio pause success');
audioPlayer.stop(); //停止播放,并觸發(fā)'stop'事件回調(diào)
});
audioPlayer.on('reset', () = > { //設(shè)置'reset'事件回調(diào)
console.info('audio reset success');
audioPlayer.release(); //釋放播放實(shí)例資源
audioPlayer = undefined;
});
audioPlayer.on('timeUpdate', (seekDoneTime) = > { //設(shè)置'timeUpdate'事件回調(diào)
if (typeof(seekDoneTime) == "undefined") {
console.info('audio seek fail');
return;
}
console.info('audio seek success, and seek time is ' + seekDoneTime);
audioPlayer.setVolume(0.5); //設(shè)置音量為50%,并觸發(fā)'volumeChange'事件回調(diào)
});
audioPlayer.on('volumeChange', () = > { //設(shè)置'volumeChange'事件回調(diào)
console.info('audio volumeChange success');
audioPlayer.pause(); //暫停播放,并觸發(fā)'pause'事件回調(diào)
});
audioPlayer.on('finish', () = > { //設(shè)置'finish'事件回調(diào)
console.info('audio play finish');
audioPlayer.stop(); //停止播放,并觸發(fā)'stop'事件回調(diào)
});
audioPlayer.on('error', (error) = > { //設(shè)置'error'事件回調(diào)
console.info(`audio error called, errName is ${error.name}`);
console.info(`audio error called, errCode is ${error.code}`);
console.info(`audio error called, errMessage is ${error.message}`);
});
// 用戶選擇視頻設(shè)置fd(本地播放)
let fdPath = 'fd://'
// path路徑的碼流可通過"hdc file send D:xxx?1.mp3 /data/accounts/account_0/appdata" 命令,將其推送到設(shè)備上
let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
fileIO.open(path).then(fdNumber) = > {
fdPath = fdPath + '' + fdNumber;
console.info('open fd success fd is' + fdPath);
}, (err) = > {
console.info('open fd failed err is' + err);
}).catch((err) = > {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //設(shè)置src屬性,并觸發(fā)'dataLoad'事件回調(diào)
on('timeUpdate')
on(type: 'timeUpdate', callback: Callback): void
開始訂閱音頻播放[seek()]時(shí)間更新事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 播放事件回調(diào)類型,支持的事件包括:'timeUpdate'。 - 'timeUpdate':[seek()]調(diào)用完成,觸發(fā)該事件。 |
callback | Callback | 是 | 播放事件回調(diào)方法?;卣{(diào)方法入?yún)槌晒eek的時(shí)間。 |
示例:
audioPlayer.on('timeUpdate', (seekDoneTime) = > { //設(shè)置'timeUpdate'事件回調(diào)
if (typeof (seekDoneTime) == 'undefined') {
console.info('audio seek fail');
return;
}
console.log('audio seek success. seekDoneTime: ' + seekDoneTime);
});
audioPlayer.seek(30000); //seek到30000ms的位置
on('error')
on(type: 'error', callback: ErrorCallback): void
開始訂閱音頻播放錯(cuò)誤事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 播放錯(cuò)誤事件回調(diào)類型,支持的事件包括:'error'。 - 'error':音頻播放中發(fā)生錯(cuò)誤,觸發(fā)該事件。 |
callback | ErrorCallback | 是 | 播放錯(cuò)誤事件回調(diào)方法。 |
示例:
audioPlayer.on('error', (error) = > { //設(shè)置'error'事件回調(diào)
console.info(`audio error called, errName is ${error.name}`); //打印錯(cuò)誤類型名稱
console.info(`audio error called, errCode is ${error.code}`); //打印錯(cuò)誤碼
console.info(`audio error called, errMessage is ${error.message}`);//打印錯(cuò)誤類型詳細(xì)描述
});
audioPlayer.setVolume(3); //設(shè)置volume為無(wú)效值,觸發(fā)'error'事件
AudioState
音頻播放的狀態(tài)機(jī)。可通過state屬性獲取當(dāng)前狀態(tài)。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.AudioPlayer。
名稱 | 類型 | 描述 |
---|---|---|
idle | string | 音頻播放空閑。 |
playing | string | 音頻正在播放。 |
paused | string | 音頻暫停播放。 |
stopped | string | 音頻播放停止。 |
error8+ | string | 錯(cuò)誤狀態(tài)。 |
VideoPlayer8+
視頻播放管理類,用于管理和播放視頻媒體。在調(diào)用VideoPlayer的方法前,需要先通過[createVideoPlayer()]構(gòu)建一個(gè)[VideoPlayer]實(shí)例。
屬性
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoPlayer。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
url8+ | string | 是 | 是 | 視頻媒體URL,支持當(dāng)前主流的視頻格式(mp4、mpeg-ts、webm、mkv)。 支持路徑示例 : 1. fd類型播放:fd://xx2、http網(wǎng)絡(luò)播放:http://xx3、hls網(wǎng)絡(luò)播放路徑:開發(fā)中 注意事項(xiàng) : 使用媒體素材需要獲取讀權(quán)限,否則無(wú)法正常播放。 |
loop8+ | boolean | 是 | 是 | 視頻循環(huán)播放屬性,設(shè)置為'true'表示循環(huán)播放。 |
currentTime8+ | number | 是 | 否 | 視頻的當(dāng)前播放位置。 |
duration8+ | number | 是 | 否 | 視頻時(shí)長(zhǎng),返回-1表示直播模式。 |
state8+ | [VideoPlayState] | 是 | 否 | 視頻播放的狀態(tài)。 |
width8+ | number | 是 | 否 | 視頻寬。 |
height8+ | number | 是 | 否 | 視頻高。 |
setDisplaySurface8+
setDisplaySurface(surfaceId: string, callback: AsyncCallback): void
通過回調(diào)方式設(shè)置SurfaceId。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
surfaceId | string | 是 | SurfaceId |
callback | function | 是 | 設(shè)置SurfaceId的回調(diào)方法。 |
示例:
videoPlayer.setDisplaySurface(surfaceId, (err) = > {
if (typeof (err) == 'undefined') {
console.info('setDisplaySurface success!');
} else {
console.info('setDisplaySurface fail!');
}
});
setDisplaySurface8+
setDisplaySurface(surfaceId: string): Promise
通過Promise方式設(shè)置SurfaceId。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
surfaceId | string | 是 | SurfaceId |
返回值:
類型 | 說明 |
---|---|
Promise | 設(shè)置SurfaceId的Promise返回值。 |
示例:
videoPlayer.setDisplaySurface(surfaceId).then(() = > {
console.info('setDisplaySurface success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
prepare8+
prepare(callback: AsyncCallback): void
通過回調(diào)方式準(zhǔn)備播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 準(zhǔn)備播放視頻的回調(diào)方法。 |
示例:
videoPlayer.prepare((err) = > {
if (typeof (err) == 'undefined') {
console.info('prepare success!');
} else {
console.info('prepare fail!');
}
});
prepare8+
prepare(): Promise
通過Promise方式準(zhǔn)備播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 準(zhǔn)備播放視頻的Promise返回值。 |
示例:
videoPlayer.prepare().then(() = > {
console.info('prepare success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
play8+
play(callback: AsyncCallback): void;
通過回調(diào)方式開始播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 開始播放視頻的回調(diào)方法。 |
示例:
videoPlayer.play((err) = > {
if (typeof (err) == 'undefined') {
console.info('play success!');
} else {
console.info('play fail!');
}
});
play8+
play(): Promise;
通過Promise方式開始播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 開始播放視頻的Promise返回值。 |
示例:
videoPlayer.play().then(() = > {
console.info('play success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
pause8+
pause(callback: AsyncCallback): void
通過回調(diào)方式暫停播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 暫停播放視頻的回調(diào)方法。 |
示例:
videoPlayer.pause((err) = > {
if (typeof (err) == 'undefined') {
console.info('pause success!');
} else {
console.info('pause fail!');
}
});
pause8+
pause(): Promise
通過Promise方式暫停播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 暫停播放視頻的Promise返回值。 |
示例:
videoPlayer.pause().then(() = > {
console.info('pause success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
stop8+
stop(callback: AsyncCallback): void
通過回調(diào)方式停止播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 停止播放視頻的回調(diào)方法。 |
示例:
videoPlayer.stop((err) = > {
if (typeof (err) == 'undefined') {
console.info('stop success!');
} else {
console.info('stop fail!');
}
});
stop8+
stop(): Promise
通過Promise方式停止播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 停止播放視頻的Promise返回值。 |
示例:
videoPlayer.stop().then(() = > {
console.info('stop success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
reset8+
reset(callback: AsyncCallback): void
通過回調(diào)方式切換播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 切換播放視頻的回調(diào)方法。 |
示例:
videoPlayer.reset((err) = > {
if (typeof (err) == 'undefined') {
console.info('reset success!');
} else {
console.info('reset fail!');
}
});
reset8+
reset(): Promise
通過Promise方式切換播放視頻。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 切換播放視頻的Promise返回值。 |
示例:
videoPlayer.reset().then(() = > {
console.info('reset success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
seek8+
seek(timeMs: number, callback: AsyncCallback): void
通過回調(diào)方式跳轉(zhuǎn)到指定播放位置,默認(rèn)跳轉(zhuǎn)到指定時(shí)間點(diǎn)的下一個(gè)關(guān)鍵幀。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
timeMs | number | 是 | 指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。 |
callback | function | 是 | 跳轉(zhuǎn)到指定播放位置的回調(diào)方法。 |
示例:
videoPlayer.seek((seekTime, err) = > {
if (typeof (err) == 'undefined') {
console.info('seek success!');
} else {
console.info('seek fail!');
}
});
seek8+
seek(timeMs: number, mode:SeekMode, callback: AsyncCallback): void
通過回調(diào)方式跳轉(zhuǎn)到指定播放位置。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
timeMs | number | 是 | 指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。 |
mode | [SeekMode] | 是 | 跳轉(zhuǎn)模式。 |
callback | function | 是 | 跳轉(zhuǎn)到指定播放位置的回調(diào)方法。 |
示例:
videoPlayer.seek((seekTime, seekMode, err) = > {
if (typeof (err) == 'undefined') {
console.info('seek success!');
} else {
console.info('seek fail!');
}
});
seek8+
seek(timeMs: number, mode?:SeekMode): Promise
通過Promise方式跳轉(zhuǎn)到指定播放位置,如果沒有設(shè)置mode則跳轉(zhuǎn)到指定時(shí)間點(diǎn)的下一個(gè)關(guān)鍵幀。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
timeMs | number | 是 | 指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。 |
mode | [SeekMode] | 否 | 跳轉(zhuǎn)模式。 |
返回值:
類型 | 說明 |
---|---|
Promise | 跳轉(zhuǎn)到指定播放位置的Promise返回值。 |
示例:
videoPlayer.seek(seekTime).then((seekDoneTime) = > { // seekDoneTime表示seek完成后的時(shí)間點(diǎn)
console.info('seek success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
videoPlayer.seek(seekTime, seekMode).then((seekDoneTime) = > {
console.info('seek success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
setVolume8+
setVolume(vol: number, callback: AsyncCallback): void
通過回調(diào)方式設(shè)置音量。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
vol | number | 是 | 指定的相對(duì)音量大小,取值范圍為[0.00-1.00],1表示最大音量,即100%。 |
callback | function | 是 | 設(shè)置音量的回調(diào)方法。 |
示例:
videoPlayer.setVolume((vol, err) = > {
if (typeof (err) == 'undefined') {
console.info('setVolume success!');
} else {
console.info('setVolume fail!');
}
});
setVolume8+
setVolume(vol: number): Promise
通過Promise方式設(shè)置音量。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
vol | number | 是 | 指定的相對(duì)音量大小,取值范圍為[0.00-1.00],1表示最大音量,即100%。 |
返回值:
類型 | 說明 |
---|---|
Promise | 設(shè)置音量的Promise返回值。 |
示例:
videoPlayer.setVolume(vol).then() = > {
console.info('setVolume success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
release8+
release(callback: AsyncCallback): void
通過回調(diào)方式釋放視頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | function | 是 | 釋放視頻資源的回調(diào)方法。 |
示例:
videoPlayer.release((err) = > {
if (typeof (err) == 'undefined') {
console.info('release success!');
} else {
console.info('release fail!');
}
});
release8+
release(): Promise
通過Promise方式釋放視頻資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise | 釋放視頻資源的Promise返回值。 |
示例:
videoPlayer.release().then() = > {
console.info('release success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
getTrackDescription8+
getTrackDescription(callback: AsyncCallback>): void
通過回調(diào)方式獲取視頻軌道信息。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback> | 是 | 獲取視頻軌道信息回調(diào)方法。 |
示例:
function printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('video key is ' + item);
console.info('video value is ' + property);
}
}
videoPlayer.getTrackDescription((error, arrlist) = > {
if (typeof (arrlist) != 'undefined') {
for (let i = 0; i < arrlist.length; i++) {
printfDescription(arrlist[i]);
}
} else {
console.log(`video getTrackDescription fail, error:${error.message}`);
}
});
getTrackDescription8+
getTrackDescription(): Promise>
通過Promise方式獲取視頻軌道信息。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
返回值:
類型 | 說明 |
---|---|
Promise> | 獲取視頻軌道信息Promise返回值。 |
示例:
function printfDescription(obj) {
for (let item in obj) {
let property = obj[item];
console.info('video key is ' + item);
console.info('video value is ' + property);
}
}
let arrayDescription;
videoPlayer.getTrackDescription().then((arrlist) = > {
if (typeof (arrlist) != 'undefined') {
arrayDescription = arrlist;
} else {
console.log('video getTrackDescription fail');
}
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
for (let i = 0; i < arrayDescription.length; i++) {
printfDescription(arrayDescription[i]);
}
setSpeed8+
setSpeed(speed:number, callback: AsyncCallback): void
通過回調(diào)方式設(shè)置播放速度。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
speed | number | 是 | 指定播放視頻速度,具體見[PlaybackSpeed]。 |
callback | function | 是 | 設(shè)置播放速度的回調(diào)方法。 |
示例:
videoPlayer.setSpeed((speed:number, err) = > {
if (typeof (err) == 'undefined') {
console.info('setSpeed success!');
} else {
console.info('setSpeed fail!');
}
});
setSpeed8+
setSpeed(speed:number): Promise
通過Promise方式設(shè)置播放速度。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
speed | number | 是 | 指定播放視頻速度,具體見[PlaybackSpeed]。 |
返回值:
類型 | 說明 |
---|---|
Promise | 通過Promise獲取設(shè)置結(jié)果。 |
示例:
videoPlayer.setSpeed(speed).then() = > {
console.info('setSpeed success');
}).catch((error) = > {
console.info(`video catchCallback, error:${error.message}`);
});
on('playbackCompleted')8+
on(type: 'playbackCompleted', callback: Callback): void
開始監(jiān)聽視頻播放完成事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 視頻播放完成事件回調(diào)類型,支持的事件:'playbackCompleted'。 |
callback | function | 是 | 視頻播放完成事件回調(diào)方法。 |
示例:
videoPlayer.on('playbackCompleted', () = > {
console.info('playbackCompleted success!');
});
on('bufferingUpdate')8+
on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void
開始監(jiān)聽視頻緩存更新事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 視頻緩存事件回調(diào)類型,支持的事件:'bufferingUpdate'。 |
callback | function | 是 | 視頻緩存事件回調(diào)方法。 [BufferingInfoType]為BUFFERING_PERCENT或CACHED_DURATION時(shí),value值有效,否則固定為0。 |
示例:
videoPlayer.on('bufferingUpdate', (infoType, value) = > {
console.log('video bufferingInfo type: ' + infoType);
console.log('video bufferingInfo value: ' + value);
});
on('startRenderFrame')8+
on(type: 'startRenderFrame', callback: Callback): void
開始監(jiān)聽視頻播放首幀送顯上報(bào)事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 視頻播放首幀送顯上報(bào)事件回調(diào)類型,支持的事件:'startRenderFrame'。 |
callback | Callback | 是 | 視頻播放首幀送顯上報(bào)事件回調(diào)方法。 |
示例:
videoPlayer.on('startRenderFrame', () = > {
console.info('startRenderFrame success!');
});
on('videoSizeChanged')8+
on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void
開始監(jiān)聽視頻播放寬高變化事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 視頻播放寬高變化事件回調(diào)類型,支持的事件:'videoSizeChanged'。 |
callback | function | 是 | 視頻播放寬高變化事件回調(diào)方法,width表示寬,height表示高。 |
示例:
videoPlayer.on('videoSizeChanged', (width, height) = > {
console.log('video width is: ' + width);
console.log('video height is: ' + height);
});
on('error')8+
on(type: 'error', callback: ErrorCallback): void
開始監(jiān)聽視頻播放錯(cuò)誤事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoPlayer
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 播放錯(cuò)誤事件回調(diào)類型,支持的事件包括:'error'。 - 'error':視頻播放中發(fā)生錯(cuò)誤,觸發(fā)該事件。 |
callback | ErrorCallback | 是 | 播放錯(cuò)誤事件回調(diào)方法。 |
示例:
videoPlayer.on('error', (error) = > { // 設(shè)置'error'事件回調(diào)
console.info(`video error called, errName is ${error.name}`); // 打印錯(cuò)誤類型名稱
console.info(`video error called, errCode is ${error.code}`); // 打印錯(cuò)誤碼
console.info(`video error called, errMessage is ${error.message}`);// 打印錯(cuò)誤類型詳細(xì)描述
});
videoPlayer.setVolume(3); //設(shè)置volume為無(wú)效值,觸發(fā)'error'事件
VideoPlayState8+
視頻播放的狀態(tài)機(jī),可通過state屬性獲取當(dāng)前狀態(tài)。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoPlayer。
名稱 | 類型 | 描述 |
---|---|---|
idle | string | 視頻播放空閑。 |
prepared | string | 視頻播放準(zhǔn)備。 |
playing | string | 視頻正在播放。 |
paused | string | 視頻暫停播放。 |
stopped | string | 視頻播放停止。 |
error | string | 錯(cuò)誤狀態(tài)。 |
SeekMode8+
視頻播放的Seek模式枚舉,可通過seek方法作為參數(shù)傳遞下去。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 描述 |
---|---|---|
SEEK_NEXT_SYNC | 0 | 表示跳轉(zhuǎn)到指定時(shí)間點(diǎn)的下一個(gè)關(guān)鍵幀,建議向后快進(jìn)的時(shí)候用這個(gè)枚舉值。 |
SEEK_PREV_SYNC | 1 | 表示跳轉(zhuǎn)到指定時(shí)間點(diǎn)的上一個(gè)關(guān)鍵幀,建議向前快進(jìn)的時(shí)候用這個(gè)枚舉值。 |
PlaybackSpeed8+
視頻播放的倍速枚舉,可通過setSpeed方法作為參數(shù)傳遞下去。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoPlayer。
名稱 | 值 | 描述 |
---|---|---|
SPEED_FORWARD_0_75_X | 0 | 表示視頻播放正常播速的0.75倍。 |
SPEED_FORWARD_1_00_X | 1 | 表示視頻播放正常播速。 |
SPEED_FORWARD_1_25_X | 2 | 表示視頻播放正常播速的1.25倍。 |
SPEED_FORWARD_1_75_X | 3 | 表示視頻播放正常播速的1.75倍。 |
SPEED_FORWARD_2_00_X | 4 | 表示視頻播放正常播速的2.00倍。 |
MediaDescription8+
[key : string] : Object
通過key-value方式獲取媒體信息。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 類型 | 說明 |
---|---|---|
key | string | 通過key值獲取對(duì)應(yīng)的value。key值具體可見[MediaDescriptionKey]。 |
value | any | 對(duì)應(yīng)key值得value。其類型可為任意類型,具體key對(duì)應(yīng)value的類型可參考[MediaDescriptionKey]的描述信息。 |
示例:
function printfItemDescription(obj, key) {
let property = obj[key];
console.info('audio key is ' + key);
console.info('audio value is ' + property);
}
audioPlayer.getTrackDescription((error, arrlist) = > {
if (typeof (arrlist) != 'undefined') {
for (let i = 0; i < arrlist.length; i++) {
printfItemDescription(arrlist[i], MD_KEY_TRACK_TYPE); //打印出每條軌道MD_KEY_TRACK_TYPE的值
}
} else {
console.log(`audio getTrackDescription fail, error:${error.message}`);
}
});
AudioRecorder
音頻錄制管理類,用于錄制音頻媒體。在調(diào)用AudioRecorder的方法前,需要先通過[createAudioRecorder()] 構(gòu)建一個(gè)[AudioRecorder]實(shí)例。
prepare[]()
prepare(config: AudioRecorderConfig): void
錄音準(zhǔn)備。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | [AudioRecorderConfig] | 是 | 配置錄音的相關(guān)參數(shù),包括音頻輸出URI、編碼格式、采樣率、聲道數(shù)、輸出格式等。 |
示例:
let audioRecorderConfig = {
audioEncoder : media.AudioEncoder.AAC_LC,
audioEncodeBitRate : 22050,
audioSampleRate : 22050,
numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS,
uri : 'fd://1', // 文件需先由調(diào)用者創(chuàng)建,并給予適當(dāng)?shù)臋?quán)限
location : { latitude : 30, longitude : 130},
}
audioRecorder.on('prepare', () = > { //設(shè)置'prepare'事件回調(diào)
console.log('prepare success');
});
audioRecorder.prepare(audioRecorderConfig);
start[]()
start(): void
開始錄制,需在[prepare]事件成功觸發(fā)后,才能調(diào)用start方法。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('start', () = > { //設(shè)置'start'事件回調(diào)
console.log('audio recorder start success');
});
audioRecorder.start();
pause[]()
pause():void
暫停錄制,需要在[start]事件成功觸發(fā)后,才能調(diào)用pause方法。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('pause', () = > { //設(shè)置'pause'事件回調(diào)
console.log('audio recorder pause success');
});
audioRecorder.pause();
resume[]()
resume():void
恢復(fù)錄制,需要在[pause]事件成功觸發(fā)后,才能調(diào)用resume方法。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('resume', () = > { //設(shè)置'resume'事件回調(diào)
console.log('audio recorder resume success');
});
audioRecorder.resume();
stop[]()
stop(): void
停止錄音。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('stop', () = > { //設(shè)置'stop'事件回調(diào)
console.log('audio recorder stop success');
});
audioRecorder.stop();
release[]()
release(): void
釋放錄音資源。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('release', () = > { //設(shè)置'release'事件回調(diào)
console.log('audio recorder release success');
});
audioRecorder.release();
audioRecorder = undefined;
reset[]()
reset(): void
重置錄音。
進(jìn)行重置錄音之前,需要先調(diào)用[stop()]停止錄音。重置錄音之后,需要調(diào)用[prepare()]設(shè)置錄音參數(shù)項(xiàng),才能再次進(jìn)行錄音。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
示例:
audioRecorder.on('reset', () = > { //設(shè)置'reset'事件回調(diào)
console.log('audio recorder reset success');
});
audioRecorder.reset();
on('prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset')[]()
on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void
開始訂閱音頻錄制事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 錄制事件回調(diào)類型,支持的事件包括:'prepare' |
callback | ()=>void | 是 | 錄制事件回調(diào)方法。 |
示例:
let audiorecorder = media.createAudioRecorder(); // 創(chuàng)建一個(gè)音頻錄制實(shí)例
let audioRecorderConfig = {
audioEncoder : media.AudioEncoder.AAC_LC, ,
audioEncodeBitRate : 22050,
audioSampleRate : 22050,
numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS,
uri : 'fd://xx', // 文件需先由調(diào)用者創(chuàng)建,并給予適當(dāng)?shù)臋?quán)限
location : { latitude : 30, longitude : 130},
}
audioRecorder.on('error', (error) = > { // 設(shè)置'error'事件回調(diào)
console.info(`audio error called, errName is ${error.name}`);
console.info(`audio error called, errCode is ${error.code}`);
console.info(`audio error called, errMessage is ${error.message}`);
});
audioRecorder.on('prepare', () = > { // 設(shè)置'prepare'事件回調(diào)
console.log('prepare success');
audioRecorder.start(); // 開始錄制,并觸發(fā)'start'事件回調(diào)
});
audioRecorder.on('start', () = > { // 設(shè)置'start'事件回調(diào)
console.log('audio recorder start success');
});
audioRecorder.on('pause', () = > { // 設(shè)置'pause'事件回調(diào)
console.log('audio recorder pause success');
});
audioRecorder.on('resume', () = > { // 設(shè)置'resume'事件回調(diào)
console.log('audio recorder resume success');
});
audioRecorder.on('stop', () = > { // 設(shè)置'stop'事件回調(diào)
console.log('audio recorder stop success');
});
audioRecorder.on('release', () = > { // 設(shè)置'release'事件回調(diào)
console.log('audio recorder release success');
});
audioRecorder.on('reset', () = > { // 設(shè)置'reset'事件回調(diào)
console.log('audio recorder reset success');
});
audioRecorder.prepare(audioRecorderConfig) // 設(shè)置錄制參數(shù) ,并觸發(fā)'prepare'事件回調(diào)
on('error')
on(type: 'error', callback: ErrorCallback): void
開始訂閱音頻錄制錯(cuò)誤事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.AudioRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 錄制錯(cuò)誤事件回調(diào)類型'error'。 - 'error':音頻錄制過程中發(fā)生錯(cuò)誤,觸發(fā)該事件。 |
callback | ErrorCallback | 是 | 錄制錯(cuò)誤事件回調(diào)方法。 |
示例:
audioRecorder.on('error', (error) = > { // 設(shè)置'error'事件回調(diào)
console.info(`audio error called, errName is ${error.name}`); // 打印錯(cuò)誤類型名稱
console.info(`audio error called, errCode is ${error.code}`); // 打印錯(cuò)誤碼
console.info(`audio error called, errMessage is ${error.message}`); // 打印錯(cuò)誤類型詳細(xì)描述
});
audioRecorder.prepare(); // prepare不設(shè)置參數(shù),觸發(fā)'error'事件
AudioRecorderConfig
表示音頻的錄音配置。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.AudioRecorder。
名稱 | 參數(shù)類型 | 必填 | 說明 |
---|---|---|---|
audioEncoder(deprecated) | [AudioEncoder] | 否 | 音頻編碼格式,默認(rèn)設(shè)置為AAC_LC。**說明:**從API Version 8 開始廢棄,建議使用audioEncoderMime替代。 |
audioEncodeBitRate | number | 否 | 音頻編碼比特率,默認(rèn)值為48000。 |
audioSampleRate | number | 否 | 音頻采集采樣率,默認(rèn)值為48000。 |
numberOfChannels | number | 否 | 音頻采集聲道數(shù),默認(rèn)值為2。 |
format(deprecated) | [AudioOutputFormat] | 否 | 音頻輸出封裝格式,默認(rèn)設(shè)置為MPEG_4。**說明:**從API Version 8 開始廢棄,建議使用fileFormat替代。 |
location | [Location] | 否 | 音頻采集的地理位置。 |
uri | string | 是 | 音頻輸出URI:fd://xx (fd number)文件需要由調(diào)用者創(chuàng)建,并賦予適當(dāng)?shù)臋?quán)限。 |
audioEncoderMime8+ | [CodecMimeType] | 否 | 音頻編碼格式。 |
fileFormat8+ | [ContainerFormatType] | 否 | 音頻編碼格式。 |
AudioEncoder(deprecated)
說明: 從 API Version 8 開始廢棄,建議使用[CodecMimeType]替代。
表示音頻編碼格式的枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.AudioRecorder。
名稱 | 默認(rèn)值 | 說明 |
---|---|---|
DEFAULT | 0 | 默認(rèn)編碼格式。 僅做接口定義,暫不支持使用。 |
AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 編碼格式。 僅做接口定義,暫不支持使用。 |
AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 編碼格式。 僅做接口定義,暫不支持使用。 |
AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)編碼格式。 |
HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)編碼格式。 僅做接口定義,暫不支持使用。 |
AudioOutputFormat(deprecated)
說明: 從 API Version 8 開始廢棄,建議使用[ContainerFormatType]替代。
表示音頻封裝格式的枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.AudioRecorder。
名稱 | 默認(rèn)值 | 說明 |
---|---|---|
DEFAULT | 0 | 默認(rèn)封裝格式。 僅做接口定義,暫不支持使用。 |
MPEG_4 | 2 | 封裝為MPEG-4格式。 |
AMR_NB | 3 | 封裝為AMR_NB格式。 僅做接口定義,暫不支持使用。 |
AMR_WB | 4 | 封裝為AMR_WB格式。 僅做接口定義,暫不支持使用。 |
AAC_ADTS | 6 | 封裝為ADTS(Audio Data Transport Stream)格式,是AAC音頻的傳輸流格式。 |
VideoRecorder9+
視頻錄制管理類,用于錄制視頻媒體。在調(diào)用VideoRecorder的方法前,需要先通過[createVideoRecorder()]構(gòu)建一個(gè)[VideoRecorder]實(shí)例。
屬性
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
state9+ | [VideoRecordState] | 是 | 否 | 視頻錄制的狀態(tài)。 |
prepare9+[]()
prepare(config: VideoRecorderConfig, callback: AsyncCallback): void;
異步方式進(jìn)行視頻錄制的參數(shù)設(shè)置。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
需要權(quán)限: ohos.permission.MICROPHONE
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | [VideoRecorderConfig] | 是 | 配置視頻錄制的相關(guān)參數(shù)。 |
callback | AsyncCallback | 是 | 異步視頻錄制prepare方法的回調(diào)方法。 |
示例:
let videoProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : 'audio/mp4a-latm',
audioSampleRate : 48000,
fileFormat : 'mp4',
videoBitrate : 48000,
videoCodec : 'video/mp4v-es',
videoFrameWidth : 640,
videoFrameHeight : 480,
videoFrameRate : 30
}
let videoConfig = {
audioSourceType : 1,
videoSourceType : 0,
profile : videoProfile,
url : 'fd://xx', // 文件需先由調(diào)用者創(chuàng)建,并給予適當(dāng)?shù)臋?quán)限
orientationHint : 0,
location : { latitude : 30, longitude : 130 },
}
// asyncallback
let videoRecorder = null;
let events = require('events');
let eventEmitter = new events.EventEmitter();
eventEmitter.on('prepare', () = > {
videoRecorder.prepare(videoConfig, (err) = > {
if (typeof (err) == 'undefined') {
console.info('prepare success');
} else {
console.info('prepare failed and error is ' + err.message);
}
});
});
media.createVideoRecorder((err, recorder) = > {
if (typeof (err) == 'undefined' && typeof (recorder) != 'undefined') {
videoRecorder = recorder;
console.info('createVideoRecorder success');
eventEmitter.emit('prepare'); // prepare事件觸發(fā)
} else {
console.info('createVideoRecorder failed and error is ' + err.message);
}
});
prepare9+[]()
prepare(config: VideoRecorderConfig): Promise;
異步方式進(jìn)行視頻錄制的參數(shù)設(shè)置。通過Promise獲取返回值。
需要權(quán)限: ohos.permission.MICROPHONE,ohos.permission.CAMERA
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | [VideoRecorderConfig] | 是 | 配置視頻錄制的相關(guān)參數(shù)。 |
返回值:
類型 | 說明 |
---|---|
Promise | 異步視頻錄制prepare方法的Promise返回值。 |
示例:
let videoProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : 'audio/mp4a-latm',
audioSampleRate : 48000,
fileFormat : 'mp4',
videoBitrate : 48000,
videoCodec : 'video/mp4v-es',
videoFrameWidth : 640,
videoFrameHeight : 480,
videoFrameRate : 30
}
let videoConfig = {
audioSourceType : 1,
videoSourceType : 0,
profile : videoProfile,
url : 'fd://xx', // 文件需先由調(diào)用者創(chuàng)建,并給予適當(dāng)?shù)臋?quán)限
orientationHint : 0,
location : { latitude : 30, longitude : 130 },
}
// promise
let videoRecorder = null;
media.createVideoRecorder().then((recorder) = > {
if (typeof (recorder) != 'undefined') {
videoRecorder = recorder;
console.info('createVideoRecorder success');
} else {
console.info('createVideoRecorder failed');
}
}).catch((err) = > {
console.info('catch err error message is ' + err.message);
});
videoRecorder.prepare(videoConfig).then(() = > {
console.info('prepare success');
}).catch((err) = > {
console.info('prepare failed and catch error is ' + err.message);
});
getInputSurface9+
getInputSurface(callback: AsyncCallback): void;
異步方式獲得錄制需要的surface。此surface提供給調(diào)用者,調(diào)用者從此surface中獲取surfaceBuffer,填入相應(yīng)的數(shù)據(jù)。
應(yīng)當(dāng)注意,填入的視頻數(shù)據(jù)需要攜帶時(shí)間戳(單位ns),buffersize。時(shí)間戳的起始時(shí)間請(qǐng)以系統(tǒng)啟動(dòng)時(shí)間為基準(zhǔn)。
只能在[prepare()]接口調(diào)用后調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步獲得surface的回調(diào)方法。 |
示例:
// asyncallback
let surfaceID = null; // 傳遞給外界的surfaceID
videoRecorder.getInputSurface((err, surfaceId) = > {
if (typeof (err) == 'undefined') {
console.info('getInputSurface success');
surfaceID = surfaceId;
} else {
console.info('getInputSurface failed and error is ' + err.message);
}
});
getInputSurface9+
getInputSurface(): Promise;
異步方式獲得錄制需要的surface。此surface提供給調(diào)用者,調(diào)用者從此surface中獲取surfaceBuffer,填入相應(yīng)的數(shù)據(jù)。
應(yīng)當(dāng)注意,填入的視頻數(shù)據(jù)需要攜帶時(shí)間戳(單位ns),buffersize。時(shí)間戳的起始時(shí)間請(qǐng)以系統(tǒng)啟動(dòng)時(shí)間為基準(zhǔn)。
只能在[prepare()]接口調(diào)用后調(diào)用。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步獲得surface的Promise返回值。 |
示例:
// promise
let surfaceID = null; // 傳遞給外界的surfaceID
videoRecorder.getInputSurface().then((surfaceId) = > {
console.info('getInputSurface success');
surfaceID = surfaceId;
}).catch((err) = > {
console.info('getInputSurface failed and catch error is ' + err.message);
});
start9+[]()
start(callback: AsyncCallback): void;
異步方式開始視頻錄制。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
在[prepare()]和[getInputSurface()]后調(diào)用,需要依賴數(shù)據(jù)源先給surface傳遞數(shù)據(jù)。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步開始視頻錄制的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.start((err) = > {
if (typeof (err) == 'undefined') {
console.info('start videorecorder success');
} else {
console.info('start videorecorder failed and error is ' + err.message);
}
});
start9+[]()
start(): Promise;
異步方式開始視頻錄制。通過Promise獲取返回值。
在[prepare()]和[getInputSurface()]后調(diào)用,需要依賴數(shù)據(jù)源先給surface傳遞數(shù)據(jù)。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步開始視頻錄制方法的Promise返回值。 |
示例:
// promise
videoRecorder.start().then(() = > {
console.info('start videorecorder success');
}).catch((err) = > {
console.info('start videorecorder failed and catch error is ' + err.message);
});
pause9+[]()
pause(callback: AsyncCallback): void;
異步方式暫停視頻錄制。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
在[start()]后調(diào)用??梢酝ㄟ^調(diào)用[resume()]接口來恢復(fù)錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步暫停視頻錄制的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.pause((err) = > {
if (typeof (err) == 'undefined') {
console.info('pause videorecorder success');
} else {
console.info('pause videorecorder failed and error is ' + err.message);
}
});
pause9+[]()
pause(): Promise;
異步方式暫停視頻錄制。通過Promise獲取返回值。
在[start()]后調(diào)用。可以通過調(diào)用[resume()]接口來恢復(fù)錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步暫停視頻錄制方法的Promise返回值。 |
示例:
// promise
videoRecorder.pause().then(() = > {
console.info('pause videorecorder success');
}).catch((err) = > {
console.info('pause videorecorder failed and catch error is ' + err.message);
});
resume9+[]()
resume(callback: AsyncCallback): void;
異步方式恢復(fù)視頻錄制。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步恢復(fù)視頻錄制的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.resume((err) = > {
if (typeof (err) == 'undefined') {
console.info('resume videorecorder success');
} else {
console.info('resume videorecorder failed and error is ' + err.message);
}
});
resume9+[]()
resume(): Promise;
異步方式恢復(fù)視頻錄制。通過Promise獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步恢復(fù)視頻錄制方法的Promise返回值。 |
示例:
// promise
videoRecorder.resume().then(() = > {
console.info('resume videorecorder success');
}).catch((err) = > {
console.info('resume videorecorder failed and catch error is ' + err.message);
});
stop9+[]()
stop(callback: AsyncCallback): void;
異步方式停止視頻錄制。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
需要重新調(diào)用[prepare()]和[getInputSurface()]接口才能重新錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步停止視頻錄制的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.stop((err) = > {
if (typeof (err) == 'undefined') {
console.info('stop videorecorder success');
} else {
console.info('stop videorecorder failed and error is ' + err.message);
}
});
stop9+[]()
stop(): Promise;
異步方式停止視頻錄制。通過Promise獲取返回值。
需要重新調(diào)用[prepare()]和[getInputSurface()]接口才能重新錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步停止視頻錄制方法的Promise返回值。 |
示例:
// promise
videoRecorder.stop().then(() = > {
console.info('stop videorecorder success');
}).catch((err) = > {
console.info('stop videorecorder failed and catch error is ' + err.message);
});
release9+[]()
release(callback: AsyncCallback): void;
異步方式釋放視頻錄制資源。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步釋放視頻錄制資源的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.release((err) = > {
if (typeof (err) == 'undefined') {
console.info('release videorecorder success');
} else {
console.info('release videorecorder failed and error is ' + err.message);
}
});
release9+[]()
release(): Promise;
異步方式釋放視頻錄制資源。通過Promise獲取返回值。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步釋放視頻錄制資源方法的Promise返回值。 |
示例:
// promise
videoRecorder.release().then(() = > {
console.info('release videorecorder success');
}).catch((err) = > {
console.info('release videorecorder failed and catch error is ' + err.message);
});
reset9+[]()
reset(callback: AsyncCallback): void;
異步方式重置視頻錄制。通過注冊(cè)回調(diào)函數(shù)獲取返回值。
需要重新調(diào)用[prepare()]和[getInputSurface()]接口才能重新錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback | 是 | 異步重置視頻錄制的回調(diào)方法。 |
示例:
// asyncallback
videoRecorder.reset((err) = > {
if (typeof (err) == 'undefined') {
console.info('reset videorecorder success');
} else {
console.info('reset videorecorder failed and error is ' + err.message);
}
});
reset9+[]()
reset(): Promise;
異步方式重置視頻錄制。通過Promise獲取返回值。
需要重新調(diào)用[prepare()]和[getInputSurface()]接口才能重新錄制。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
返回值:
類型 | 說明 |
---|---|
Promise | 異步重置視頻錄制方法的Promise返回值。 |
示例:
// promise
videoRecorder.reset().then(() = > {
console.info('reset videorecorder success');
}).catch((err) = > {
console.info('reset videorecorder failed and catch error is ' + err.message);
});
on('error')9+
on(type: 'error', callback: ErrorCallback): void
開始訂閱視頻錄制錯(cuò)誤事件。
系統(tǒng)能力: SystemCapability.Multimedia.Media.VideoRecorder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 錄制錯(cuò)誤事件回調(diào)類型'error'。 - 'error':視頻錄制過程中發(fā)生錯(cuò)誤,觸發(fā)該事件。 |
callback | ErrorCallback | 是 | 錄制錯(cuò)誤事件回調(diào)方法。 |
示例:
videoRecorder.on('error', (error) = > { // 設(shè)置'error'事件回調(diào)
console.info(`audio error called, errName is ${error.name}`); // 打印錯(cuò)誤類型名稱
console.info(`audio error called, errCode is ${error.code}`); // 打印錯(cuò)誤碼
console.info(`audio error called, errMessage is ${error.message}`); // 打印錯(cuò)誤類型詳細(xì)描述
});
// 當(dāng)獲取videoRecordState接口出錯(cuò)時(shí)通過此訂閱事件上報(bào)
VideoRecordState9+
視頻錄制的狀態(tài)機(jī)??赏ㄟ^state屬性獲取當(dāng)前狀態(tài)。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 類型 | 描述 |
---|---|---|
idle | string | 視頻錄制空閑。 |
prepared | string | 視頻錄制參數(shù)設(shè)置完成。 |
playing | string | 視頻正在錄制。 |
paused | string | 視頻暫停錄制。 |
stopped | string | 視頻錄制停止。 |
error | string | 錯(cuò)誤狀態(tài)。 |
VideoRecorderConfig9+
表示視頻錄制的參數(shù)設(shè)置。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 參數(shù)類型 | 必填 | 說明 |
---|---|---|---|
audioSourceType | [AudioSourceType] | 是 | 視頻錄制的音頻源類型。 |
videoSourceType | [VideoSourceType] | 是 | 視頻錄制的視頻源類型。 |
profile | [VideoRecorderProfile] | 是 | 視頻錄制的profile。 |
rotation | number | 否 | 錄制視頻的旋轉(zhuǎn)角度。 |
location | [Location] | 否 | 錄制視頻的地理位置。 |
url | string | 是 | 視頻輸出URL:fd://xx (fd number)文件需要由調(diào)用者創(chuàng)建,并賦予適當(dāng)?shù)臋?quán)限。 |
AudioSourceType9+
表示視頻錄制中音頻源類型的枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 值 | 說明 |
---|---|---|
AUDIO_SOURCE_TYPE_DEFAULT | 0 | 默認(rèn)的音頻輸入源類型。 |
AUDIO_SOURCE_TYPE_MIC | 1 | 表示MIC的音頻輸入源。 |
VideoSourceType9+
表示視頻錄制中視頻源類型的枚舉。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 值 | 說明 |
---|---|---|
VIDEO_SOURCE_TYPE_SURFACE_YUV | 0 | 輸入surface中攜帶的是raw data。 |
VIDEO_SOURCE_TYPE_SURFACE_ES | 1 | 輸入surface中攜帶的是ES data。 |
VideoRecorderProfile9+
視頻錄制的配置文件。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。
名稱 | 參數(shù)類型 | 必填 | 說明 |
---|---|---|---|
audioBitrate | number | 是 | 音頻編碼比特率。 |
audioChannels | number | 是 | 音頻采集聲道數(shù)。 |
audioCodec | [CodecMimeType] | 是 | 音頻編碼格式。 |
audioSampleRate | number | 是 | 音頻采樣率。 |
fileFormat | [ContainerFormatType] | 是 | 文件的容器格式。 |
videoBitrate | number | 是 | 視頻編碼比特率。 |
videoCodec | [CodecMimeType] | 是 | 視頻編碼格式。 |
videoFrameWidth | number | 是 | 錄制視頻幀的寬。 |
videoFrameHeight | number | 是 | 錄制視頻幀的高。 |
videoFrameRate | number | 是 | 錄制視頻幀率。 |
ContainerFormatType8+
表示容器格式類型的枚舉,縮寫為CFT。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 值 | 說明 |
---|---|---|
CFT_MPEG_4 | "mp4" | 視頻的容器格式,MP4。 |
CFT_MPEG_4A | "m4a" | 音頻的容器格式,M4A。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
Location
視頻錄制的地理位置。
系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。
名稱 | 參數(shù)類型 | 必填 | 說明 |
---|---|---|---|
latitude | number | 是 | 地理位置的緯度。 |
longitude | number | 是 | 地理位置的經(jīng)度。 |
審核編輯 黃宇
-
接口
+關(guān)注
關(guān)注
33文章
8451瀏覽量
150728 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2303瀏覽量
42691
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論