我如何使用CameraKit保存视频

时间:2019-04-30 11:59:46

标签: android android-activity android-camera android-manifest android-ffmpeg

我正在使用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>

1 个答案:

答案 0 :(得分:0)

以下示例在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版本的库中。