android - 我如何使用 CameraKit 保存视频
问题描述
我正在使用 CameraKit,我可以用它拍照,但我不知道如何录制视频。我在文档中搜索,我找到了一个事件和两种启动和停止视频的方法,我在 FFMPEG 中搜索,但我未能实现,如果有任何解决方案,请帮助我。
cameraKitView.captureVideo(VideoCallback callback)
cameraKitView.startVideo()
cameraKitView.stopVideo()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_capture = findViewById(R.id.btn_capture);
cameraKitView = findViewById(R.id.camera);
// btn_capture.setOnClickListener(photoOnClickListener);
btn_capture.setOnClickListener(videoOnClickListener);
}
private View.OnClickListener videoOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
cameraKitView.captureVideo(new CameraKitView.VideoCallback() {
@Override
public void onVideo(final CameraKitView cameraKitView, final Object o) {
cameraKitView.startVideo();
cameraKitView.postDelayed(new Runnable() {
@Override
public void run() {
//cameraKitView.stopVideo();
Toast.makeText(MainActivity.this, "video stoped", Toast.LENGTH_SHORT).show();
}
}, 2500);
}
};
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.camerakit.CameraKitView
android:id="@+id/camera"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"/>
<Button
android:id="@+id/btn_capture"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="bottom|center"
android:layout_marginBottom="20dp"
android:background="@drawable/rounded_button"
android:padding="15dp" />
<Button
android:id="@+id/btn_settings"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:layout_marginLeft="34dp"
android:layout_marginBottom="37dp"
android:background="@drawable/ic_settings"
/>
</FrameLayout>
解决方案
以下示例使用 Kotlin 编写,但您也可以轻松理解 Java 的术语。
使用以下稳定版本的 CameraKit
implementation "com.wonderkiln:camerakit:0.13.5"
然后您可以使用以下方法捕获视频
cameraKitView.captureVideo("YOUR_VIDE_FILE_NAME_WITH_EXTENTION(.mp4)") { cameraKitVideo ->
if (cameraKitVideo.videoFile != null) {
// Save video or post it to server
}
}
据我所知,上述方法仅适用于稳定版本的 CameraKit。它不包含在较新(beta)版本的库中。
推荐阅读
- ruby-on-rails - 命名间隔形式对象的 i18n 文件位置和格式
- git - 未添加 git 中的子模块并显示 [修改内容]
- c++ - 当矩阵没有LU-Decomposition时,如何在C ++中求解方阵的线性系统?
- time - 库克定理和 NP 完全约简
- c# - 获取方法(Odata) - 检查是否正常工作 - C#
- docker - gcloud auth configure-docker 在 Windows 中不起作用
- amazon-web-services - 如何获取 AWS ECS 区域
- arrays - 在lua中编码json数组
- javascript - 滑块单击时的jQuery音频持续时间更改
- r - 如何用时间戳可视化数据集中单词出现的上升或下降