jln*_*46v 7 java camera android
我正在编写一个应用程序,我允许用户使用手机摄像头捕获视频.我使用自己的代码来录制视频,而不是内置在相机应用程序中的Androids.
一切正常,除了我需要能够访问支持的摄像头分辨率列表,所以我可以在运行时选择使用哪一个.我正在寻找像getSupportedPictureSizes()视频一样的东西.Android 3.0有这个功能,但我正在寻找2.2的东西.
截至目前我正在使用CamcorderProfile.QUALITY_HIGH / QUALITY_LOW,但这只给了我两个选项,在我测试的手机上,文件大小在每个极端.(QUALITY_LOW为216 kb/s,QUALITY_HIGH> 3 MB/s)
非常感谢任何帮助,谢谢!
你尝试使用getSupportedVideoSizes()方法的Camera.Parameters类?
public List<Camera.Size> getSupportedVideoSizes()
Run Code Online (Sandbox Code Playgroud)
此方法返回Size对象列表.null如果相机没有单独的预览和视频输出,它将返回.这里的答案表明,当它返回时,null您可以使用该getSupportedPreviewSizes()列表.
好吧,我想我弄清楚了.它似乎在我测试的手机上正常工作.
List<Size> tmpList = camera.getParameters().getSupportedPreviewSizes();
final List<Size> sizeList = new Vector<Size>();
//compair the apsect ratio of the candidate sizes against the real ratio
Double aspectRatio = (Double.valueOf(getWindowManager().getDefaultDisplay().getHeight()) / getWindowManager().getDefaultDisplay().getWidth());
for(int i=0; i<tmpList.size(); i++){
Double tmpRatio = Double.valueOf(tmpList.get(i).height) / tmpList.get(i).width;
if(Math.abs(aspectRatio - tmpRatio) < .15){
sizeList.add(tmpList.get(i));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15382 次 |
| 最近记录: |