gpt4 book ai didi

android - 屏幕录制输出在某些三星设备上失真

转载 作者:太空狗 更新时间:2023-10-29 13:03:52 26 4
gpt4 key购买 nike

我正在尝试捕捉 Android 设备屏幕的视频,但在某些三星设备上,我得到的视频被粉红色失真覆盖层掩盖了。

检查以下三星 DOUS 和 Pixel XL 输出视频的屏幕截图:

On Samsung DUOS SM-G532F - Pixel XL 2 (OS Level 27)

三星 DUOS G532F(API 23)- Pixel XL 2(API 27)

这是我设置媒体记录器的方法

    MediaRecorder recorder = new MediaRecorder();
recorder.setVideoSource(SURFACE);
recorder.setOutputFormat(MPEG_4);
recorder.setVideoFrameRate(recordingInfo.frameRate);
recorder.setVideoEncoder(H264);
recorder.setVideoSize(recordingInfo.width, recordingInfo.height);
recorder.setVideoEncodingBitRate(3 * 1000 * 1000);

recordingInfo 中使用的默认值

private static final int DEFAULT_VIDEO_WIDTH = 540;
private static final int DEFAULT_VIDEO_HEIGHT = 960;
private static final int DEFAULT_VIDEO_FRAMERATE = 30;

camcorderProfile.videoFrameWidth = DEFAULT_VIDEO_WIDTH;
camcorderProfile.videoFrameHeight = DEFAULT_VIDEO_HEIGHT;
camcorderProfile.videoFrameRate = DEFAULT_VIDEO_FRAMERATE;

CamcorderProfile

CamcorderProfile camcorderProfile;
if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_QVGA)) {
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_QVGA);
} else {
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_LOW);
}

我也尝试了 CamcorderProfile.QUALITY_HIGH 和其他一些配置文件,结果相同

最佳答案

根据 documentation对于不受支持的分辨率,CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_QVGA) 可能会返回 true

为确保在 LEGACY 模式下支持给定的分辨率,CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP 中给出的配置必须包含支持的输出尺寸的分辨率。

CamCorderProfile(int cameraId, int quality);

例如:

CamcorderProfile.hasProfile(CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,
CamcorderProfile.QUALITY_TIME_LAPSE_QVGA)

并且为了获取相机 ID 列表以便您可以获得支持的相机 ID 列表,您可以执行以下操作:

CameraManager cManager = (CameraManager) this.getApplicationContext().getSystemService(CAMERA_SERVICE);

此外,推荐的检查方法是使用 StreamConfigurationMap.getOutputSizes(Class)使用所需记录端点的类,并检查所需分辨率是否包含在返回的列表中。

支持的端点类示例 here .

关于android - 屏幕录制输出在某些三星设备上失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51234344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com