Tôi muốn cung cấp cho người dùng tùy chọn để đặt các độ phân giải khác nhau.setVideoSize() treo với độ phân giải cao
Tôi đã thử giải pháp này
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P);
....
....
mCamera.unlock();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setProfile(camcorderProfile);
Nó làm việc hoàn hảo: chất lượng tốt đẹp và tất cả mọi thứ ...
Khi tôi đặt nó vào
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
với FLASH trên, video xuất hiện với màu xanh lục và một số màu kỳ lạ khác.
Tôi đọc trực tuyến và mọi người nói là vì QUALITY_480P có thể không được hỗ trợ trên điện thoại của tôi. Ok, nó tạo ra giác quan.
Do đó, tôi bắt đầu làm việc trên các giải pháp khác nhau, vì vậy tôi đã cố gắng ....
recorder.setVideoSize(640, 480);
Nó làm việc rất lớn,
nhưng đoạn video trông rất xấu xí.
Tiếp theo, tôi đã kiểm tra danh sách video được hỗ trợ.
List<Size> GetSupportedVideosResolutions = params.getSupportedVideoSizes();
Độ phân giải: 1280x720 có trong danh sách, vì vậy
Tôi đã cố gắng để thiết lập như sau:
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoSize(1280,720);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Nó đã cho tôi một lỗi RuntimeException.
Câu hỏi đặt ra là
Tại sao nó không thể cho tôi thiết lập độ phân giải cao mà có sẵn trên điện thoại?
Bất kỳ trợ giúp nào sẽ được đánh giá rất cao,
Cảm ơn bạn.
Edit: thêm lỗi log
04-18 17:40:07.391: E/AndroidRuntime(30191): java.lang.RuntimeException: start failed.
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.media.MediaRecorder.start(Native Method)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.prepare_StartRecorder(VideoActivity.java:1009)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.Recorder_Start_Stop(VideoActivity.java:1102)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity$6.onClick(VideoActivity.java:246)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View.performClick(View.java:4489)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.widget.CompoundButton.performClick(CompoundButton.java:104)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View$PerformClick.run(View.java:18803)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.handleCallback(Handler.java:730)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Looper.loop(Looper.java:137)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.app.ActivityThread.main(ActivityThread.java:5493)
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invoke(Method.java:525)
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
04-18 17:40:07.391: E/AndroidRuntime(30191): at dalvik.system.NativeStart.main(Native Method)
Vì 720p là 1280x720, bạn mong đợi gì khác với khối mã cuối cùng của mình so với khối mã đầu tiên mà bạn cho biết đã hoạt động tốt? IOW, nếu bạn muốn đầu ra 1280x720, bạn đã có mã làm việc cho điều đó. Ngoài ra, chúng tôi không thể giúp bạn với ngoại lệ trừ khi bạn đăng theo dõi ngăn xếp và cho biết những đường nào trong dấu vết ngăn xếp đó tương ứng với những dòng nào trong mã của bạn trong câu hỏi của bạn. – CommonsWare
Cảm ơn bạn đã bình luận. Tôi muốn cung cấp cho người dùng tùy chọn để chọn các độ phân giải khác nhau. 720P là mã cứng. 720P có thể không được hỗ trợ trên một thiết bị khác. Ngoài ra, tôi đã đề cập rằng đã xảy ra sự cố với 480P khi bật flash. Tôi có thể thử 1920x1080 và lỗi tương tự. – Iam1414
Bạn đang thử nghiệm thiết bị nào? –