错误的流媒体视频打开Android摄像头 [英] Error opening android camera for streaming video

查看:340
本文介绍了错误的流媒体视频打开Android摄像头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆