#android #media #video-recording #mediarecorder
#Android #Медиафайлы #запись видео #mediarecorder
Вопрос:
Я пытаюсь изменить битрейт кодирования видеозаписи на Android с помощью MediaRecorder.setVideoEncodingBitRate(int)
.
Я посмотрел в документации Android, и там указан этот метод для установки / изменения скорости передачи данных, но когда я пытаюсь использовать этот метод, я получаю, что он setVideoEncodingBitrRate(int)
не определен в пакете MediaRecorder
.
Почему это так?
Ответ №1:
Я предлагаю вам проверить, какую версию API вы используете
setVideoEncodingBitRate()
просто заходите на API v8 или Android 2.1
Если вы используете версию меньше этой, она будет недоступна : D
Также вы могли бы использовать его следующим образом
webCamRecorder = new MediaRecorder();
if (target_holder == null)
return;
webCamRecorder.setPreviewDisplay(target_holder.getSurface());
webCamRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
webCamRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
webCamRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
webCamRecorder.setAudioEncodingBitRate(196608);
webCamRecorder.setVideoSize(640, 480);
webCamRecorder.setVideoFrameRate(30);
webCamRecorder.setVideoEncodingBitRate(15000000);
webCamRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
webCamRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
webCamRecorder.setOutputFile("your location to save");
Комментарии:
1. Тогда вам следует попытаться выполнить шаг создания MediaRecorder в качестве моего примера:]
Ответ №2:
setVideoEncodingBitRate
это метод экземпляра, кажется, что вы пытаетесь вызвать его как статический метод ( MediaRecorder.setVideoEncodingBitRate(int)
), вместо этого вызывайте его из объекта MediaRecorder.
MediaRecorder mr = new MediaRecorder();
mr.setVideoEncodingBitRate(someint);
Кроме того, вы импортировали android.media.MediaRecorder
?
Комментарии:
1. Я создаю его экземпляр и устанавливаю параметры только для объекта. Также я импортировал
android.media.MediaRecorder