Camera获取的视频流怎么解析然后在SurfaceView上面播放

Camera获取的视频流怎么解析然后在SurfaceView上面播放 

  [复制链接]
   
 
跳转到指定楼层
楼主

0
public class ShowVideo extends SurfaceView implements Callback {
        Camera cam;
        SurfaceHolder holder;
        public OutputStream out;
        public InputStream input;
        public FriendVideo friend;
        public ShowVideo(Context context, AttributeSet attrs) {
                super(context, attrs);
                holder = this.getHolder();
                holder.addCallback(this);
                holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
                // TODO Auto-generated constructor stub
        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                        int height) {
                // TODO Auto-generated method stub
                Camera.Parameters param = cam.getParameters();
                param.set("ORIENTATION", "PORTRAIT");
                param.set("ROTATION", -90);
                param.setSceneMode("portrait");
                param.setPreviewSize(width, height);
                List<Camera.Size> reviewSizes = param.getSupportedPreviewSizes();
                param.setPreviewFrameRate(3);
                try {
                        cam.setParameters(param);
                } catch (Exception e) {
                        // TODO: handle exception
                }
                cam.setPreviewCallback(new StreamIt(this.getContext()));
                cam.startPreview();
        }

        @Override
        public void surfaceCreated(SurfaceHolder holder) {
                // TODO Auto-generated method stub
                cam = Camera.open();
                try {
                        cam.setPreviewDisplay(holder);

                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                        cam.release();
                        cam = null;
                }
                // int ret = MetroEncoderJNI.VideoInit(176, 144, 2, 4, 64, 4);

        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
                // TODO Auto-generated method stub
                // Log.e("Destroy..", "distroy");
                cam.setPreviewCallback(null);
                cam.stopPreview();
                cam.release();
                cam = null;
        }

        class StreamIt implements Camera.PreviewCallback {
                private Context context;

                public StreamIt(Context context) {
                        this.context = context;
                }

                @Override
                public void onPreviewFrame(byte[] data, Camera camera) {
                        // TODO Auto-generated method stub
                        if (data != null) {
                                Log.i("StreamIt ", "" + data.length);
                                byte[] pdate = new byte[data.length];
                        }
                }
        }

}
通过上面方法获取到了视频流,然后我想通过socket把视频流传送给另外一个客户端,请问如何把视频流解析然后显示在surfaceView上面呢..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值