动态

详情 返回 返回

【HarmonyOS-媒體技術-AVScreenCapture】錄屏功能開發全攻略 - 动态 详情

你還在為屏幕錄製功能發愁嗎?

HarmonyOS 的 AVScreenCapture,就是你一直在尋找的那把"萬能鑰匙"!

一、功能全面,兼容性強,開箱即用

AVScreenCapture 是 HarmonyOS 平台上強大的屏幕錄製組件,支持高清、低延遲、多場景的屏幕內容捕獲,助力開發者輕鬆實現:

  • 遊戲錄屏:精準捕捉每幀操作,還原精彩瞬間
  • 教學演示:清晰錄製操作流程,提升學習效率
  • 會議分享:一鍵錄製屏幕+語音,遠程協作更高效
  • 直播推流:低延遲輸出,適配直播平台需求

支持主流錄製模式:

  • 全屏錄製 / 區域錄製(自定義窗口)
  • 系統音+麥克風雙音軌錄製
  • 硬件加速編碼:H.264 / H.265,高效壓縮不卡頓
  • 封裝格式:MP4、M4A,兼容主流播放器

典型應用:遊戲錄播工具在線教育平台遠程辦公助手直播推流應用

二、開發門檻低,功能強大,支持多種語言

ArkTS 開發

  • 快速構建錄屏界面,狀態流轉清晰
  • 支持錄製控制、錯誤回調一體化

C/C++ NDK 開發

  • 與底層圖形系統深度集成,適合高性能錄屏引擎

三、開發流程清晰,代碼結構規範,易於維護

屏幕錄製流程(ArkTS 示例)

// 1. 創建 AVScreenCapture 實例  
const screenCapture = await media.createScreenCapture();  

let filePath: string = 'screenCapture.mp4';  
let captureFile: fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);  

// 2. 配置錄製參數  
const captureConfig = {  
  // 開發者可以根據自身的需要設置寬高。  
  frameWidth: 768,  
  frameHeight: 1280,  
  // 參考應用文件訪問與管理開發示例新建並讀寫一個文件fd。  
  fd: captureFile.fd,  
  // 可選參數及其默認值。  
  videoBitrate: 10000000,  
  audioSampleRate: 48000,  
  audioChannelCount: 2,  
  audioBitrate: 96000,  
  displayId: 0,  
  preset: media.AVScreenCaptureRecordPreset.SCREEN_RECORD_PRESET_H264_AAC_MP4
};  

await screenCapture.init(captureConfig);  

// 3. 開始/停止錄製  
screenCapture.startRecording();  
screenCapture.stopRecording();  

// 4. 釋放資源  
screenCapture.release();

四、NDK 開發(C++ 示例)

// 1. 創建 AVScreenCapture 實例  
struct OH_AVScreenCapture \*capture = OH_AVScreenCapture_Create();  

// 2. 配置參數並準備錄製  
OH_AudioCaptureInfo miccapinfo = {.audioSampleRate = 16000, .audioChannels = 2, .audioSource = OH_MIC};  
OH_VideoCaptureInfo videocapinfo = {  
    .videoFrameWidth = 768, .videoFrameHeight = 1280, .videoSource = OH_VIDEO_SOURCE_SURFACE_RGBA};  
OH_AudioInfo audioinfo = {  
    .micCapInfo = miccapinfo,  
};  
OH_VideoInfo videoinfo = {.videoCapInfo = videocapinfo};  
OH_AVScreenCaptureConfig config = {.captureMode = OH_CAPTURE_HOME_SCREEN,  
                                   .dataType = OH_ORIGINAL_STREAM,  
                                   .audioInfo = audioinfo,  
                                   .videoInfo = videoinfo};  
OH_AVScreenCapture_Init(capture, config);  

// 3. 開始/停止錄屏。  
OH_AVScreenCapture_StartScreenRecording(capture);  
OH_AVScreenCapture_StopScreenRecording(capture);  

// 4. 釋放資源  
OH_AVScreenCapture_Release(capture);

五、為什麼選擇 AVScreenCapture?

  • 高效穩定,輕鬆構建專業級錄屏應用

    • 原生支持鴻蒙系統圖形架構,支持硬件加速編碼,錄製過程流暢不卡頓,幀率穩定,音畫同步精準。
  • 靈活配置,滿足多樣化需求

    • 支持全屏/區域錄製、多音軌混合、自定義分辨率與碼率,可適配遊戲、教學、會議、直播等不同場景。
  • 開放文檔 + 社區支持,快速上手

    • 提供詳盡的 API 文檔、完整示例代碼與調試工具,配合活躍的開發者社區,助你從0到1快速落地。

六、立即行動,開啓你的屏幕錄製開發之旅

點擊瞭解完整開發示例與 API 文檔

AVScreenCapture 開發指南 ArkTS API

AVScreenCapture 開發指南 C API

加入 HarmonyOS 社區,共創未來

我們誠邀廣大開發者一起參與 HarmonyOS 技術生態建設,共建更開放、更智能的未來世界!

加入開發者社區,獲取最新資訊和技術支持

HarmonyOS 官方社區

讓 AVScreenCapture 成為你開發路上的得力助手,開啓你的屏幕錄製新紀元!

Add a new 评论

Some HTML is okay.