Tôi gặp sự cố tương tự với những gì được mô tả ở đây. Tôi bật ra rằng tôi đã phải cơ cấu lại mã của tôi một chút trước khi tôi có thể điều chỉnh kích thước video.
Điều quan trọng là setVideoSize() được gọi trước setVideoEncoder(). Tôi không thể tìm thấy điều này trong tài liệu, tuy nhiên nó giải quyết được vấn đề của tôi với việc thiết lập độ phân giải video cụ thể. Cũng nên nhớ rằng setOutputFormat() nên được gọi trước khi setVideoSize().
Giống như lưu ý phụ, điều này cũng đúng với setVideoFrameRate(). Nếu nó không được gọi trước setVideoEncoder() nó sẽ không có bất kỳ ảnh hưởng nào.
này đã được thử nghiệm với Android 2.3.3
Dưới đây là một ví dụ mã:
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoSize(640,480);
recorder.setVideoFrameRate(30);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Nguồn
2011-11-04 12:56:03
tôi chỉ hy vọng họ sẽ viết nó (khoảng VideoSize và PreviewSize) trên tài liệu API của họ. – artsylar
không phải là setVideoSize() chỉ cần gọi setPreviewSize()? Có nghĩa là, chúng sẽ vẫn có cùng giá trị ở cuối miễn là video là một trong các kích thước xem trước được hỗ trợ. – artsylar
"Thông số" là gì? Tham số – Felix