我正在使用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)版本的库中。