【鸿蒙南向开发】OpenHarmony 源码解析之多媒体子系统(camera)

1 简介

媒体子系统为开发者提供一套接口,方便开发者使用系统的媒体资源,本文主要介绍多媒体下的Camera模块。

1.1 OpenHarmony 架构图

在这里插入图片描述

1.2 camera子系统

相关功能接口:相机拍照、相机预览、相机录像
在这里插入图片描述

1.3 原理图

OpenHarmony 源码解析之多媒体子系统(camera)-鸿蒙开发者社区

1.4 搭建HarmonyOS环境

我们首先需要完成HarmonyOS开发环境搭建,可参照如下步骤进行。

●安装DevEco Studio,详情请参考下载和安装软件。

●设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:

1.如果可以直接访问Internet,只需进行下载OpenHarmony SDK操作。

2.如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境。

开发者可以参考以下链接,完成设备调试的相关配置:

1.使用真机进行调试

2.使用模拟器进行调试

2 基础知识

2.1 代码结构

OpenHarmony 源码解析之多媒体子系统(camera)-鸿蒙开发者社区

2.2 相机模块核心类

OpenHarmony 源码解析之多媒体子系统(camera)-鸿蒙开发者社区

3 源码解析

3.1 上层初始化示例

该文件的main方法执行了创建camera的整个流程,并且在创建初始化好了camera后,根据用户输入的字符,对camera进行拍照,录像,预览功能的执行。

int main()
{
    cout << "Camera sample begin." << endl;
    SampleHelp();
    CameraKit *camKit = CameraKit::GetInstance();
    if (camKit == nullptr) {
        cout << "Can not get CameraKit instance" << endl;
        return 0;
    }
    list<string> camList = camKit->GetCameraIds();
    string camId;
    for (auto &cam : camList) {
        camId = cam;
    break;
    }

    if (camId.empty()) {
        cout << "No available camera.(1080p wanted)" << endl;
        return 0;
    }

    EventHandler eventHdlr; // Create a thread to handle callback events
    SampleCameraStateMng CamStateMng(eventHdlr);

    camK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值