首页 > 解决方案 > Android:录制视频 30 秒,30 秒后仅录制音频

问题描述

我在应用程序中有要求,我需要录制 30 秒的视频,然后只录制音频而不停止录制。我怎样才能实现它?我正在使用 Camerview 库来录制视频。我应该将我的实现更改为表面视图吗?

我有使用cameraview库的实现,如下所示。当前实施工作以捕获视频但不能满足我的要求。

<com.otaliastudios.cameraview.CameraView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/camera" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:keepScreenOn="true" app:cameraAudio="on" app:cameraCropOutput="false" app:cameraFacing="back" app:cameraFlash="off" app:cameraGestureLongTap="none" app:cameraGesturePinch="zoom" app:cameraGestureScrollHorizontal="exposureCorrection" app:cameraGestureScrollVertical="none" app:cameraGestureTap="focus" app:cameraGrid="off" app:cameraJpegQuality="100" app:cameraPlaySounds="true" app:cameraSessionType="video" app:cameraVideoQuality="max480p" />

 private void captureVideo() {
    if (camera.getSessionType() != SessionType.VIDEO) {
        return;
    }
    videoPath = getContext().getExternalCacheDir() + File.separator + System.currentTimeMillis() + ".mp4";
    camera.setVideoCodec(VideoCodec.DEVICE_DEFAULT);
    camera.setVideoQuality(VideoQuality.MAX_480P);
    camera.startCapturingVideo(new File(videoPath));
}

标签: androidcamera

解决方案


用于录制长达 30 秒的视频。

试试下面的代码

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file
startActivityForResult(intent, CAMERA_CAPTURE_VIDEO_REQUEST_CODE);

推荐阅读