0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-06 11:03 ? 次閱讀

媒體服務(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ù)

參數(shù)名類型必填說明
callbackAsyncCallback<[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ù)名類型必填說明
callbackAsyncCallback<[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_OK0表示操作成功。
MSERR_NO_MEMORY1表示申請(qǐng)內(nèi)存失敗,系統(tǒng)可能無(wú)可用內(nèi)存。
MSERR_OPERATION_NOT_PERMIT2表示無(wú)權(quán)限執(zhí)行此操作。
MSERR_INVALID_VAL3表示傳入入?yún)o(wú)效。
MSERR_IO4表示發(fā)生IO錯(cuò)誤。
MSERR_TIMEOUT5表示操作超時(shí)。
MSERR_UNKNOWN6表示未知錯(cuò)誤。
MSERR_SERVICE_DIED7表示服務(wù)端失效。
MSERR_INVALID_STATE8表示在當(dāng)前狀態(tài)下,不允許執(zhí)行此操作。
MSERR_UNSUPPORTED9表示在當(dāng)前版本下,不支持此操作。

MediaType8+

媒體類型枚舉。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。

名稱說明
MEDIA_TYPE_AUD0表示音頻。
MEDIA_TYPE_VID1表示視頻。

[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_START1表示開始緩存。
BUFFERING_END2表示結(jié)束緩存。
BUFFERING_PERCENT3表示緩存百分比。
CACHED_DURATION4表示緩存時(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。

名稱類型可讀可寫說明
srcstring音頻媒體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ú)法正常播放。
loopboolean音頻循環(huán)播放屬性,設(shè)置為'true'表示循環(huán)播放。
currentTimenumber音頻的當(dāng)前播放位置。
durationnumber音頻時(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ù)名類型必填說明
timeMsnumber指定的跳轉(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ù)名類型必填說明
volnumber指定的相對(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ù)名類型必填說明
callbackAsyncCallback>獲取音頻軌道信息回調(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ù)名類型必填說明
typestring音頻緩存事件回調(diào)類型,支持的事件:'bufferingUpdate'。
callbackfunction音頻緩存事件回調(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ù)名類型必填說明
typestring播放事件回調(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ù)名類型必填說明
typestring播放事件回調(diào)類型,支持的事件包括:'timeUpdate'。 - 'timeUpdate':[seek()]調(diào)用完成,觸發(fā)該事件。
callbackCallback播放事件回調(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ù)名類型必填說明
typestring播放錯(cuò)誤事件回調(diào)類型,支持的事件包括:'error'。 - 'error':音頻播放中發(fā)生錯(cuò)誤,觸發(fā)該事件。
callbackErrorCallback播放錯(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。

名稱類型描述
idlestring音頻播放空閑。
playingstring音頻正在播放。
pausedstring音頻暫停播放。
stoppedstring音頻播放停止。
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ù)名類型必填說明
surfaceIdstringSurfaceId
callbackfunction設(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ù)名類型必填說明
surfaceIdstringSurfaceId

返回值:

類型說明
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ù)名類型必填說明
callbackfunction準(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ù)名類型必填說明
callbackfunction開始播放視頻的回調(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ù)名類型必填說明
callbackfunction暫停播放視頻的回調(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ù)名類型必填說明
callbackfunction停止播放視頻的回調(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ù)名類型必填說明
callbackfunction切換播放視頻的回調(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ù)名類型必填說明
timeMsnumber指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。
callbackfunction跳轉(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ù)名類型必填說明
timeMsnumber指定的跳轉(zhuǎn)時(shí)間節(jié)點(diǎn),單位毫秒(ms)。
mode[SeekMode]跳轉(zhuǎn)模式。
callbackfunction跳轉(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ù)名類型必填說明
timeMsnumber指定的跳轉(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ù)名類型必填說明
volnumber指定的相對(duì)音量大小,取值范圍為[0.00-1.00],1表示最大音量,即100%。
callbackfunction設(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ù)名類型必填說明
volnumber指定的相對(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ù)名類型必填說明
callbackfunction釋放視頻資源的回調(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ù)名類型必填說明
callbackAsyncCallback>獲取視頻軌道信息回調(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ù)名類型必填說明
speednumber指定播放視頻速度,具體見[PlaybackSpeed]。
callbackfunction設(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ù)名類型必填說明
speednumber指定播放視頻速度,具體見[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ù)名類型必填說明
typestring視頻播放完成事件回調(diào)類型,支持的事件:'playbackCompleted'。
callbackfunction視頻播放完成事件回調(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ù)名類型必填說明
typestring視頻緩存事件回調(diào)類型,支持的事件:'bufferingUpdate'。
callbackfunction視頻緩存事件回調(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ù)名類型必填說明
typestring視頻播放首幀送顯上報(bào)事件回調(diào)類型,支持的事件:'startRenderFrame'。
callbackCallback視頻播放首幀送顯上報(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ù)名類型必填說明
typestring視頻播放寬高變化事件回調(diào)類型,支持的事件:'videoSizeChanged'。
callbackfunction視頻播放寬高變化事件回調(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ù)名類型必填說明
typestring播放錯(cuò)誤事件回調(diào)類型,支持的事件包括:'error'。 - 'error':視頻播放中發(fā)生錯(cuò)誤,觸發(fā)該事件。
callbackErrorCallback播放錯(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。

名稱類型描述
idlestring視頻播放空閑。
preparedstring視頻播放準(zhǔn)備。
playingstring視頻正在播放。
pausedstring視頻暫停播放。
stoppedstring視頻播放停止。
errorstring錯(cuò)誤狀態(tài)。

SeekMode8+

視頻播放的Seek模式枚舉,可通過seek方法作為參數(shù)傳遞下去。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。

名稱描述
SEEK_NEXT_SYNC0表示跳轉(zhuǎn)到指定時(shí)間點(diǎn)的下一個(gè)關(guān)鍵幀,建議向后快進(jìn)的時(shí)候用這個(gè)枚舉值。
SEEK_PREV_SYNC1表示跳轉(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_X0表示視頻播放正常播速的0.75倍。
SPEED_FORWARD_1_00_X1表示視頻播放正常播速。
SPEED_FORWARD_1_25_X2表示視頻播放正常播速的1.25倍。
SPEED_FORWARD_1_75_X3表示視頻播放正常播速的1.75倍。
SPEED_FORWARD_2_00_X4表示視頻播放正常播速的2.00倍。

MediaDescription8+

[key : string] : Object

通過key-value方式獲取媒體信息。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。

名稱類型說明
keystring通過key值獲取對(duì)應(yīng)的value。key值具體可見[MediaDescriptionKey]。
valueany對(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ù)名類型必填說明
typestring錄制事件回調(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ù)名類型必填說明
typestring錄制錯(cuò)誤事件回調(diào)類型'error'。 - 'error':音頻錄制過程中發(fā)生錯(cuò)誤,觸發(fā)該事件。
callbackErrorCallback錄制錯(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替代。
audioEncodeBitRatenumber音頻編碼比特率,默認(rèn)值為48000。
audioSampleRatenumber音頻采集采樣率,默認(rèn)值為48000。
numberOfChannelsnumber音頻采集聲道數(shù),默認(rèn)值為2。
format(deprecated)[AudioOutputFormat]音頻輸出封裝格式,默認(rèn)設(shè)置為MPEG_4。**說明:**從API Version 8 開始廢棄,建議使用fileFormat替代。
location[Location]音頻采集的地理位置。
uristring音頻輸出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)值說明
DEFAULT0默認(rèn)編碼格式。 僅做接口定義,暫不支持使用。
AMR_NB1AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 編碼格式。 僅做接口定義,暫不支持使用。
AMR_WB2AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 編碼格式。 僅做接口定義,暫不支持使用。
AAC_LC3AAC-LC(Advanced Audio Coding Low Complexity)編碼格式。
HE_AAC4HE_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)值說明
DEFAULT0默認(rèn)封裝格式。 僅做接口定義,暫不支持使用。
MPEG_42封裝為MPEG-4格式。
AMR_NB3封裝為AMR_NB格式。 僅做接口定義,暫不支持使用。
AMR_WB4封裝為AMR_WB格式。 僅做接口定義,暫不支持使用。
AAC_ADTS6封裝為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ù)。
callbackAsyncCallback異步視頻錄制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ù)名類型必填說明
callbackAsyncCallback異步獲得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ù)名類型必填說明
callbackAsyncCallback異步開始視頻錄制的回調(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ù)名類型必填說明
callbackAsyncCallback異步暫停視頻錄制的回調(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ù)名類型必填說明
callbackAsyncCallback異步恢復(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ù)名類型必填說明
callbackAsyncCallback異步停止視頻錄制的回調(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ù)名類型必填說明
callbackAsyncCallback異步釋放視頻錄制資源的回調(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ù)名類型必填說明
callbackAsyncCallback異步重置視頻錄制的回調(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ù)名類型必填說明
typestring錄制錯(cuò)誤事件回調(diào)類型'error'。 - 'error':視頻錄制過程中發(fā)生錯(cuò)誤,觸發(fā)該事件。
callbackErrorCallback錄制錯(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。

名稱類型描述
idlestring視頻錄制空閑。
preparedstring視頻錄制參數(shù)設(shè)置完成。
playingstring視頻正在錄制。
pausedstring視頻暫停錄制。
stoppedstring視頻錄制停止。
errorstring錯(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。
rotationnumber錄制視頻的旋轉(zhuǎn)角度。
location[Location]錄制視頻的地理位置。
urlstring視頻輸出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_DEFAULT0默認(rèn)的音頻輸入源類型。
AUDIO_SOURCE_TYPE_MIC1表示MIC的音頻輸入源。

VideoSourceType9+

表示視頻錄制中視頻源類型的枚舉。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。

名稱說明
VIDEO_SOURCE_TYPE_SURFACE_YUV0輸入surface中攜帶的是raw data。
VIDEO_SOURCE_TYPE_SURFACE_ES1輸入surface中攜帶的是ES data。

VideoRecorderProfile9+

視頻錄制的配置文件。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.VideoRecorder。

名稱參數(shù)類型必填說明
audioBitratenumber音頻編碼比特率。
audioChannelsnumber音頻采集聲道數(shù)。
audioCodec[CodecMimeType]音頻編碼格式。
audioSampleRatenumber音頻采樣率。
fileFormat[ContainerFormatType]文件的容器格式。
videoBitratenumber視頻編碼比特率。
videoCodec[CodecMimeType]視頻編碼格式。
videoFrameWidthnumber錄制視頻幀的寬。
videoFrameHeightnumber錄制視頻幀的高。
videoFrameRatenumber錄制視頻幀率。

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。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

Location

視頻錄制的地理位置。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為 SystemCapability.Multimedia.Media.Core。

名稱參數(shù)類型必填說明
latitudenumber地理位置的緯度。
longitudenumber地理位置的經(jīng)度。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8451

    瀏覽量

    150728
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2303

    瀏覽量

    42691
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    音頻管理提供管理音頻的一些基礎(chǔ)能力,包括對(duì)音頻音量、音頻設(shè)備的管理,以及對(duì)音頻數(shù)據(jù)的采集和渲染等。
    的頭像 發(fā)表于 05-31 09:53 ?2197次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>媒體</b>:【@<b class='flag-5'>ohos.multimedia</b>.audio (音頻管理)】

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

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

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

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

    鴻蒙原生應(yīng)用/元服務(wù)開發(fā)-延遲任務(wù)說明(一)

    ) @ohos.backgroundTaskManager (后臺(tái)任務(wù)管理) @ohos.multimedia.audio (音頻管理) @ohos.multimedia.media (媒體
    發(fā)表于 01-16 14:57

    鴻蒙媒體開發(fā)【簡(jiǎn)述】

    錄制)、圖片等。 如下圖所示,媒體系統(tǒng)面向應(yīng)用開發(fā)提供音視頻應(yīng)用、圖庫(kù)應(yīng)用的編程框架接口;面向設(shè)備開發(fā)提供對(duì)接不同硬件芯片適配加速功能;中間以服務(wù)
    發(fā)表于 02-28 17:53

    MAC中什么是媒體無(wú)關(guān)接口

    IEEE 802.3 規(guī)范提出媒體無(wú)關(guān)接口Media Independent Interface,MII)就是為了能夠?qū)崿F(xiàn) MAC 層和不同的物理層(PHY)之間的邏輯連接,如圖 10-5 所示
    發(fā)表于 12-27 11:23

    什么是流媒體服務(wù)器?

      服務(wù)器有很多種類,比如我們常見的有游戲服務(wù)器,游戲服務(wù)器可以為游戲開發(fā)商提供平臺(tái),開發(fā)游戲并運(yùn)營(yíng),也有有視頻
    發(fā)表于 06-30 09:28

    HarmonyOS API Version 7版本特性說明

    、音量管理、設(shè)備管理等功能提供音頻。@ohos.multimedia.media播放、錄制、媒體編解碼等功能提供媒體數(shù)。@ohos.multimedia.mediaLibrary據(jù)的增
    發(fā)表于 11-30 15:19

    HarmonyOS API Version 7版本特性說明

    管理、設(shè)備管理等功能提供音頻。@ohos.multimedia.media播放、錄制、媒體編解碼等功能提供媒體數(shù)。@ohos.multimedia.mediaLibrary據(jù)的增刪改查
    發(fā)表于 12-01 10:35

    鴻蒙JS開發(fā)音頻管理,導(dǎo)入media錯(cuò)誤怎么解決

    not found: Error: Can't resolve '@ohos.multimedia.media' in 'f:Harmony_osshoujitestentrysrcmainjsdefaultpagesindexdouVS'只要import
    發(fā)表于 04-25 10:12

    瑞芯微媒體處理軟件平臺(tái)(MPP)開發(fā)參考

    不同芯片的差異,為使用者提供統(tǒng)一的視頻媒體處理接口Media Process Interface,縮寫 MPI)。MPP提供的功能包括:視頻解碼H.265 / H.264 / H.263 / VP9
    發(fā)表于 06-21 15:33

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTSAPI系統(tǒng)能力SystemCapability列表

    SystemCapability.Multimedia.Media.Core:媒體基礎(chǔ)能力 SystemCapability.Multimedia.Media.AVPlayer:媒體
    發(fā)表于 08-11 10:08

    鴻蒙開發(fā)UI界面——@ohos.mediaquery (媒體查詢)

    導(dǎo)入模塊 ? import mediaquery from '@ohos.mediaquery' ? mediaquery.matchMediaSync matchMediaSync
    的頭像 發(fā)表于 02-22 16:46 ?714次閱讀

    使用NVIDIA Holoscan for Media構(gòu)建下一代直播媒體應(yīng)用

    NVIDIA Holoscan for Media 現(xiàn)已向所有希望在完全可重復(fù)使用的集群上構(gòu)建下一代直播媒體應(yīng)用的開發(fā)者開放。
    的頭像 發(fā)表于 04-16 14:04 ?576次閱讀

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

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