如何在已经开机的情况下录制摄像机?

问题描述 投票:0回答:1

打开前置摄像头,开始视频通话。之后,我想在通话期间记录正面摄像头。

媒体记录器设置

mediaRecorder?.apply {
    setAudioSource(MediaRecorder.AudioSource.MIC)
    setVideoSource(MediaRecorder.VideoSource.SURFACE)
    setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
    setOutputFile(nextVideoAbsolutePath)
    setVideoEncodingBitRate(10000000)
    setVideoFrameRate(30)
    setVideoSize(videoSize.width, videoSize.height)
    setVideoEncoder(MediaRecorder.VideoEncoder.H264)
    setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
    prepare()
}

通常是这样的

// Set up Surface for camera preview and MediaRecorder
val callSurface = localSurfaceView.holder.surface
val recorderSurface = mediaRecorder!!.surface
val surfaces = ArrayList<Surface>().apply {
    add(callSurface)
    add(recorderSurface)
}
cameraDevice!!.createCaptureRequest(TEMPLATE_RECORD).apply {
    addTarget(callSurface)
    addTarget(recorderSurface)
}
cameraDevice?.createCaptureSession(surfaces, StateCallback)

问题是我正在使用WebRTC库打开相机。因此,我无权访问cameraManager.openCamera()方法,这通常是您检索CameraDevice实例的方式。

因此,如何检索已经打开的CameraDevice的实例?如果我有此对象,则可以继续进行录制。

android kotlin webrtc android-camera2 mediarecorder
1个回答
-1
投票

[在大多数智能手机或设备中,没有足够的硬件资源来一次运行两个摄像头,因此尝试打开第二个摄像头通常会出错。相机API可以使用。

[相机功能]的ICS SDK中似乎确实有更多文档,但是我可以直接找到2相机1设备问题的答案...

© www.soinside.com 2019 - 2024. All rights reserved.