android通过摄像头预览、录制视频

时间:2022-09-18 22:41:03
在琢磨android摄像头预览和录制视频的问题,这两天看了很多资料尝试了很多,基本都不能用,我想要一个对这个方面介绍比较详细,比如定制设置参数程度高的demo或者资料介绍,请问有没有人可以分享下的?网页或者资料或者demo都行,谢谢了~

11 个解决方案

#1


建议你去看看sdk 那个极少比较全面 

#2


楼上正解!。。。。。。。。。。。

#3


直接看源码中的Camera应用程序, Camera.java 

#4


顶楼上,看源码

#5


菜鸟学习中,看源代码

#6


引用 3 楼 luowenlong860502 的回复:
直接看源码中的Camera应用程序, Camera.java



我看了Camera.java文件了,也对比了android4.1原生系统的录制视频的代码,按照他上面的代码来我自己写demo,总是在mediarecorder.setAudioSource的这个地方出现异常,很无解。。。。求破
录制代码在下面

private void startRecord() {
if (camera1 == null) {
return;
}

if (surfaceHolder == null) {
return;
}
mediaRecorder = new MediaRecorder();
camera1.unlock();
mediaRecorder.setCamera(camera1);

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(mProfile);
mediaRecorder.setMaxDuration(60 * 1000);

File file = new File(Environment.getExternalStorageDirectory(),
"DemoRecord.3gp");

// if (!file.exists() && !file.isDirectory()) {
// file.mkdir();
// }
//
// File tempFile = new File(Environment.getExternalStorageDirectory()
// + "/AndroidDemo", "DemoRecord.3gp");

mediaRecorder.setOutputFile(file.getAbsolutePath());

mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());

mediaRecorder.setOrientationHint(-90);

try {
mediaRecorder.prepare();
} catch (IOException e) {
mediaRecorder.release();
throw new RuntimeException(e);
}

mediaRecorder.start();

}

#7


引用 1 楼 shen332401890 的回复:
建议你去看看sdk 那个极少比较全面


看了  按照原生系统的录制视频的代码,一样报错。。。现在处于瓶颈阶段,预览倒是实现了、。。

#8


晚上给你发个demo 试试看

#9


要看手机能不能支持你所需要的编码,有些手机是支持不了的。跟你采样的分辨率有关系。

#10


引用 6 楼 orosem625 的回复:
引用 3 楼 luowenlong860502 的回复:直接看源码中的Camera应用程序, Camera.java


我看了Camera.java文件了,也对比了android4.1原生系统的录制视频的代码,按照他上面的代码来我自己写demo,总是在mediarecorder.setAudioSource的这个地方出现异常,很无解。。。。求破
录制代码在下面
……

把异常信息帖出来我看下

#11


http://blog.csdn.net/shen332401890/article/details/8819564 我会在稍晚的时候提供下载链接 刚传上CSDN 要审核

#1


建议你去看看sdk 那个极少比较全面 

#2


楼上正解!。。。。。。。。。。。

#3


直接看源码中的Camera应用程序, Camera.java 

#4


顶楼上,看源码

#5


菜鸟学习中,看源代码

#6


引用 3 楼 luowenlong860502 的回复:
直接看源码中的Camera应用程序, Camera.java



我看了Camera.java文件了,也对比了android4.1原生系统的录制视频的代码,按照他上面的代码来我自己写demo,总是在mediarecorder.setAudioSource的这个地方出现异常,很无解。。。。求破
录制代码在下面

private void startRecord() {
if (camera1 == null) {
return;
}

if (surfaceHolder == null) {
return;
}
mediaRecorder = new MediaRecorder();
camera1.unlock();
mediaRecorder.setCamera(camera1);

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(mProfile);
mediaRecorder.setMaxDuration(60 * 1000);

File file = new File(Environment.getExternalStorageDirectory(),
"DemoRecord.3gp");

// if (!file.exists() && !file.isDirectory()) {
// file.mkdir();
// }
//
// File tempFile = new File(Environment.getExternalStorageDirectory()
// + "/AndroidDemo", "DemoRecord.3gp");

mediaRecorder.setOutputFile(file.getAbsolutePath());

mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());

mediaRecorder.setOrientationHint(-90);

try {
mediaRecorder.prepare();
} catch (IOException e) {
mediaRecorder.release();
throw new RuntimeException(e);
}

mediaRecorder.start();

}

#7


引用 1 楼 shen332401890 的回复:
建议你去看看sdk 那个极少比较全面


看了  按照原生系统的录制视频的代码,一样报错。。。现在处于瓶颈阶段,预览倒是实现了、。。

#8


晚上给你发个demo 试试看

#9


要看手机能不能支持你所需要的编码,有些手机是支持不了的。跟你采样的分辨率有关系。

#10


引用 6 楼 orosem625 的回复:
引用 3 楼 luowenlong860502 的回复:直接看源码中的Camera应用程序, Camera.java


我看了Camera.java文件了,也对比了android4.1原生系统的录制视频的代码,按照他上面的代码来我自己写demo,总是在mediarecorder.setAudioSource的这个地方出现异常,很无解。。。。求破
录制代码在下面
……

把异常信息帖出来我看下

#11


http://blog.csdn.net/shen332401890/article/details/8819564 我会在稍晚的时候提供下载链接 刚传上CSDN 要审核