1 简介
媒体子系统为开发者提供一套接口,方便开发者使用系统的媒体资源,本文主要介绍多媒体下的Camera模块。
1.1 OpenHarmony 架构图
1.2 camera子系统
相关功能接口:相机拍照、相机预览、相机录像
1.3 原理图
1.4 搭建HarmonyOS环境
我们首先需要完成HarmonyOS开发环境搭建,可参照如下步骤进行。
●安装DevEco Studio,详情请参考下载和安装软件。
●设置DevEco Studio开发环境,DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:
1.如果可以直接访问Internet,只需进行下载OpenHarmony SDK操作。
2.如果网络不能直接访问Internet,需要通过代理服务器才可以访问,请参考配置开发环境。
开发者可以参考以下链接,完成设备调试的相关配置:
1.使用真机进行调试
2.使用模拟器进行调试
2 基础知识
2.1 代码结构
2.2 相机模块核心类
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