Я пытаюсь создать видео приложение с видеозаписью и тестирую его с Xiaomi Redmi 5, у которого разрешение экрана 1440x1080. Когда я пытаюсь записать видео с помощью MediaRecorder, я получаю видео размером 1440x1080:
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile(videoFileName);
mediaRecorder.setVideoEncodingBitRate(1000000);
mediaRecorder.setVideoFrameRate(30);
mediaRecorder.setVideoSize(videoSize.getWidth(), videoSize.getHeight());
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//mediaRecorder.setOrientationHint(totalRotation);
mediaRecorder.prepare();
Когда я пытаюсь установить размер видео на:
videoSize = new Size(1920, 1080);
Android Ошибка, совершенная Studio:
Surface with size (w=1920, h=1080) and format 0x22 is not valid, size not in valid set: [1440x1080, 1440x720, 1280x720, 960x720, 960x540, 800x600, 864x480, 800x480, 720x480, 640x480, 640x360, 640x320, 480x368, 480x320, 352x288, 320x240, 176x144]
Я могу записывать видео 1920x1080 с камерой Xiaomi OS, но не с моим приложением.
Как я могу записать видео лучшего качества для смартфона с помощью Camera2 API?
Вот мой манифест .permission
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
У меня есть только одно основное занятие. Поэтому я использую
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
}
Я использую это:
android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.prod.coverme" minSdkVersion 23 targetSdkVersion 29 versionCode 1 versionName "1.0"