use*_*135 11 android mediarecorder
Android可以MediaRecorder捕获分辨率高于320*240?的视频吗?
当我MediaRecorder::setVideoSize()以前设置视频大小时,捕获的视频都是分辨率320*240.更糟糕的是,较高的人无法得到一个清晰的视频,他们在某种程度上是绿色的.(使用的编码器是h263,格式是mpeg4)
这里使用的Android版本是 1.6
你能帮助我吗?
我遇到了类似于此处描述的问题.我发现在调整视频大小之前我必须稍微重构我的代码.
重要的是在setVideoEncoder()之前调用setVideoSize().我在文档中找不到这个,但它解决了我设置特定视频分辨率的问题.还要记住,setOutputFormat()应该在setVideoSize()之前调用.
正如旁注所示,setVideoFrameRate()也是如此.如果在setVideoEncoder()之前没有调用它,它将不会有任何影响.
这是使用Android 2.3.3测试的
这是一个代码示例:
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);
Run Code Online (Sandbox Code Playgroud)
首先,您需要确定您的相机支持什么。尝试:
List<String> anti = params.getSupportedAntibanding();
List<String> color = params.getSupportedColorEffects();
List<String> focus = params.getSupportedFocusModes();
List<String> flash = params.getSupportedFlashModes();
List<Size> previewSize = params.getSupportedPreviewSizes();
List<Size> sizes = params.getSupportedPictureSizes();
List<Integer> frameRates = params.getSupportedPreviewFrameRates();
List<Integer> pictureFormats = params.getSupportedPictureFormats();
List<String> scene = params.getSupportedSceneModes();
List<String> white = params.getSupportedWhiteBalance();
Run Code Online (Sandbox Code Playgroud)
这将告诉您相机支持的所有参数。其次,确保正确初始化 MediaRecorder,请参阅 google 文档以了解需要设置 MediaRecorder 的顺序。另外,如果您的 Camera.setPreviewSize 和 MediaRecorder.setVideoSize 不同,则可能会导致奇怪的行为。
| 归档时间: |
|
| 查看次数: |
9602 次 |
| 最近记录: |