错误的流媒体视频打开Android摄像头 [英] Error opening android camera for streaming video
问题描述
我想从我的Galaxy Tab写的视频流服务器。 根据本手册我应该做这样的事情:
I'm trying to write video stream from my Galaxy Tab to server. according to this manual i should do something like this:
frontCamera = getFrontCamera();
if((socket!= null)&&(frontCamera!=null))
{
try {
frontCamera.setPreviewDisplay(cameraPreview.getHolder());
} catch (IOException e1) {
// TODO Auto-generated catch block
Log.e("","",e1);
}
frontCamera.startPreview();
recorder = new MediaRecorder();
frontCamera.unlock();
recorder.setCamera(frontCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setProfile(CamcorderProfile.get( CamcorderProfile.QUALITY_HIGH));
pfd = ParcelFileDescriptor.fromSocket(socket);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.setPreviewDisplay(cameraPreview.getHolder().getSurface());
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
Log.e("","",e);
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("","",e);
}
但都未能上步 recorder.start();
奇怪的错误
02-01 19:03:39.265: E/MediaRecorder(11922): start failed: -19
这是什么意思,我应该怎样做才能开始记录?
what does that mean and what should I do to start recorder?
UPD: 麻烦是因为我getFrontCamera方法。当我与camera.open取代它()一切工作正确的。
UPD: Trouble happens because of my getFrontCamera method. when I replace it with camera.open() all works correct.
protected Camera getFrontCamera()
{
Camera.CameraInfo inf = new Camera.CameraInfo();
for(int i = 0; i< Camera.getNumberOfCameras(); i++)
{
Camera.getCameraInfo(i, inf);
if(inf.facing==Camera.CameraInfo.CAMERA_FACING_FRONT)
{
return Camera.open(i);
}
}
return null;
}
UPD2 - 是的,格式化的明确设置和连接codeRS解决了麻烦 -
Upd2 - yes, explicit setting of format and encoders solved the trouble -
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
也许是因为pre-构建格式的相机背面...但奇怪的呢。
Maybe because of pre-build formats are for back camera... But strange anyway.
推荐答案
我不明白输出格式的设置,所以尽量增加刻录机上设置了:
I don't see output format setup, so try adding to recorder set up:
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
这篇关于错误的流媒体视频打开Android摄像头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!