# CameraView
**Repository Path**: Fei-hong/CameraView
## Basic Information
- **Project Name**: CameraView
- **Description**: 这是一个模仿微信拍照的ohos开源控件
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2022-06-25
- **Last Updated**: 2022-06-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CameraView
CameraView
这是一个模仿微信拍照的ohos开源控件
点击拍照
10s的视频大概1.9M左右
长按录视频(视频长度可设置)
录制完视频可以浏览并且重复播放
前后摄像头的切换
可以设置小视频保存路径
# 引用
方式一:
通过library生成har包,添加har包到libs文件夹内
在entry的gradle内添加如下代码
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
方式二:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:camera-view:1.0.5'
# 使用:
权限:
"reqPermissions": [
{
"name": "ohos.permission.CAMERA"
},
{
"name": "ohos.permission.WRITE_USER_STORAGE"
},
{
"name": "ohos.permission.MICROPHONE"
}
]
全屏设置
getWindow().setStatusBarVisibility(Component.INVISIBLE);
"metaData":{
"customizeData": [
{
"name": "hwc-theme",
"value": "androidhwext:style/Theme.Emui.NoTitleBar",
"extra": ""
}
]
}
初始化JCameraView控件
getWindow().setTransparent(true);
mJCameraView = (JCameraView) findComponentById(ResourceTable.Id_jcameraview);
mJCameraView.setSaveVideoPath(getFilesDir() + File.separator + "JCamera");
mJCameraView.setIconLeftAndRight(ResUtils.getVectorDrawable(getAbility(), ResourceTable.Graphic_ic_back),
ResUtils.getVectorDrawable(getAbility(), ResourceTable.Graphic_ic_photo));
mJCameraView.setTip("自定义中间提醒标题");
mJCameraView.setErrorListener((errorString, type) -> LogUtil.error(LogUtil.DEFAULT_TAG, "errorString:" + errorString));
mJCameraView.setJCameraListener(new JCameraListener() {
@Override
public void captureSuccess(PixelMap bitmap) {
String filUrl = FileUtil.saveBitmap("JCamera", bitmap, getContext());
Intent fileIntent = new Intent();
fileIntent.setParam("PHOTO_URL", filUrl);
setResult(fileIntent);
terminate();
}
@Override
public void recordSuccess(String url) {
LogUtil.error(LogUtil.DEFAULT_TAG, "recordSuccess");
}
});
mJCameraView.setLeftClickListener(() -> {
setResult(new Intent());
terminate();
});
mJCameraView.setRightClickListener(() ->
LogUtil.info(LogUtil.DEFAULT_TAG, "Click Right")
);
JCameraView生命周期:
@Override
public void onActive() {
super.onActive();
if (mJCameraView != null) {
mJCameraView.onResume();
}
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
if (mJCameraView != null) {
mJCameraView.onPause();
}
}
## 图片示例
## entry运行要求
通过DevEco studio,并下载SDK
将项目中的build.gradle文件中dependencies→classpath版本改为对应的版本(即你的IDE新建项目中所用的版本)