android - 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));
}
解决方案
用于录制长达 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);
推荐阅读
- integer - 合适的重量是多少?
- tensorflow - AttributeError:模块'sparkdl'没有属性'graph'
- android - 如何使用 Work Manager 处理来自 FusedLocationProviderClient 的位置更新?
- javascript - Javascript动画循环不会停止
- lua - 支持“跳转到定义”交叉文件的 LUA IDE
- php - 二维数组的嵌套列表
- cython - 存储临时 Python 引用的不安全 C 派生
- python - 如何对 csv 中的“日期”列进行排序以仅显示年度范围的春季数据
- c# - 用于增量线程参与者执行的 C# 静态公共字段
- docusignapi - 是否可以为docusign模板收件人设置recipientId