Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CamcorderProfile中的videoFrameRate字段实际上是做什么的?_Java_Android_Flutter_Android Camera2 - Fatal编程技术网

Java CamcorderProfile中的videoFrameRate字段实际上是做什么的?

Java CamcorderProfile中的videoFrameRate字段实际上是做什么的?,java,android,flutter,android-camera2,Java,Android,Flutter,Android Camera2,我使用的是私有的分叉版本,我正在对插件的Android部分进行更改,以获得插件尚未提供的某些功能 如果可用,我希望摄像机以60帧/秒的速度进行记录,环顾四周,过程如下: 检查可用目标范围是否包括60FPS(从 摄像机特性。控制(可用目标FPS范围) 如果支持60FPS,请在摄像机配置文件中将帧速率设置为60(这将 用于构建MediaRecorder) 此外,在CaptureRequest中设置目标范围(通过 CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE)

我使用的是私有的分叉版本,我正在对插件的Android部分进行更改,以获得插件尚未提供的某些功能

如果可用,我希望摄像机以60帧/秒的速度进行记录,环顾四周,过程如下:

  • 检查可用目标范围是否包括60FPS(从 摄像机特性。控制(可用目标FPS范围)
  • 如果支持60FPS,请在摄像机配置文件中将帧速率设置为60(这将 用于构建MediaRecorder)
  • 此外,在CaptureRequest中设置目标范围(通过 CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE)
  • 我已经设法让它工作,但我发现将摄像机档案中的帧率设置为不同的值会产生奇怪的行为

    camcorderProfile.videoFrameRate = 1
    captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
    //Video is ~43 FPS
    
    camcorderProfile.videoFrameRate = 30
    captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
    //Video is 47-53 FPS
    
    camcorderProfile.videoFrameRate = 60
    captureRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range.inBetween(60,60);
    //Video is ~60 FPS
    
    看起来输出视频帧速率是CamcorderProfile帧速率和CaptureRequest目标FPS的均方根

    sqrt(0.5*(1+60^2))=42.43
    sqrt(0.5*(30^2+60^2))=47.43
    sqrt(0.5*(60^2+60^2))=60
    
    那么CamcorderProfile类的videoFrameRate字段用于什么呢?此外,我观察到的行为是典型的吗?(使用Moto G8 Plus)

    旨在设置播放帧速率的状态(我的解释),但情况似乎并非如此,因为我录制的所有视频都以1x的速度播放(视频的外观速度似乎与我录制的没有什么不同)