网络摄像机论坛_做中文最大,最专业的网络摄像机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10699|回复: 3

PNPCAM录像

[复制链接]

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2016-1-11 11:34:41 | 显示全部楼层 |阅读模式
本帖最后由 xiaoming 于 2016-1-11 11:40 编辑

CustomVideoRecord.java中存在问题,播放的总时间比录制时候的世间短,能提供最新的修改代码吗
        public void startRecordVideo(int type) {
                synchronized (this) {
                        try {
                                this.type = type;
                                startRecording = true;
                                isFirstH264 = true;
                                startTime = (new Date()).getTime();
                                sumFrame = 0;
                                sum = 0;
                                dataBuff = new LinkedList<VideoRecordBean>();
                                Log.d("tag", "start record video");
                                mThread = new Thread(new myRunnable());
                                mThread.start();
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                }
        }

        public void stopRecordVideo() {
                synchronized (this) {
                        startRecording = false;
                        long time = (new Date()).getTime();
                        videoSumTime = (int) (time - startTime);
                }
        }


private class myRunnable implements Runnable {

                @Override
                public void run() {

                        try {
                                File div = new File("/sdcard/video");
                                if (!div.exists()) {
                                        div.mkdirs();
                                }
                                String strDate = getStrDate();
                                String p = strDate + "_" + strDID + ".mp4";
                                File file = new File(div, p);
                                Log.d("tag",
                                                "start record video  fileName:"
                                                                + file.getAbsolutePath());
                                videopath = file.getAbsolutePath();
                                outStream = new FileOutputStream(new File(videopath), true);
                                Log.d("tag", "���� type:" + type);
                                switch (type) {
                                case 1:// fileHeader 1:h264����
                                        byte[] header = intToByte(1);
                                        outStream.write(header);
                                        break;
                                case 2: // fileHeader 2:jpg����
                                        Log.d("tag", "jpg����");
                                        byte[] header2 = intToByte(2);
                                        outStream.write(header2);
                                        break;
                                default:
                                        break;
                                }
                                Log.d("tag", "outStream:" + outStream);
                                while (true && startRecording) {
                                        if (dataBuff.size() > 0) {
                                                sumFrame++;
                                                Log.d("tag", "�ܹ�¼��" + sumFrame + " ֡    ���ļ���д��һ֡");
                                                VideoRecordBean bean = dataBuff.poll();
                                                if (type == 1) {// h264����
                                                        int size = bean.getWidth();
                                                        int t = bean.getType();
                                                        int tspan = bean.getTspan();
                                                        byte[] sizebyte = intToByte(size);
                                                        byte[] typebyte = intToByte(t);
                                                        byte[] picture = bean.getPicture();
                                                        byte[] time = intToByte(tspan);
                                                        Log.i("tag", "------------------2222222222222");
                                                        outStream.write(sizebyte);
                                                        outStream.write(typebyte);
                                                        outStream.write(time);
                                                        outStream.write(picture);
                                                        sum += tspan;
                                                } else {// jpg����
                                                        byte[] picture = bean.getPicture();
                                                        byte[] length = intToByte(picture.length);
                                                        int tspan = bean.getTspan();
                                                        byte[] time = intToByte(tspan);
                                                        Log.d("tag", "¼��ʱ��֡ʱ��� Tspan: " + tspan);
                                                        sum += tspan;
                                                        outStream.write(length);
                                                        outStream.write(time);
                                                        outStream.write(picture);
                                                }
                                                outStream.flush();
                                        } else {
                                                Log.d("tag", "没有图片 暂停1秒");
                                                Thread.sleep(1000);
                                        }
                                }
                                Log.d("tag", "录制总时间 videoSumTime:" + videoSumTime);
                                Log.d("tag", "一共总的帧数:sumFrame = " + sumFrame);
                                byte[] endBytes = intToByte(videoEnd);
                                byte[] sumTimeBytes = intToByte(sum);
                                outStream.write(endBytes);
                                outStream.write(sumTimeBytes);
                                outStream.flush();
                                // 清除缓存
                                dataBuff.clear();
                                dataBuff = null;
                                // 向数据库中写入录像文件记录
                                Log.d("tag", "向数据库中写入录像文件记录");
                                dbUtil.open();
                                dbUtil.createVideoOrPic(strDID, videopath,
                                                DatabaseUtil.TYPE_VIDEO, "2323");
                                dbUtil.close();
                                if (outStream != null) {
                                        outStream.close();
                                        outStream = null;
                                }
                        } catch (Exception e) {
                                Log.d("tag", "保存录像文件异常:" + e.getMessage());
                                e.printStackTrace();
                        }
                }
        };录制视频1分钟,但播放的时候只看到总时间40秒




发表于 2016-1-12 08:48:05 | 显示全部楼层
尊敬的顾客您好:关于SDK的技术支持方式,主要仍旧采用邮件的方式,请邮件咨询:dfc@vstarcam.com。谢谢。

1

主题

2

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2016-1-12 11:31:10 | 显示全部楼层
VStarcam_小李 发表于 2016-1-12 08:48
尊敬的顾客您好:关于SDK的技术支持方式,主要仍旧采用邮件的方式,请邮件咨询:。谢谢。 ...

您好,这个邮件不存在啊,邮件发不出去,请给其他的联系方式
发表于 2016-2-17 16:35:39 | 显示全部楼层
非常抱歉,关于SDK的技术支持,请发送到对应的邮件咨询,谢谢!andriod:dfc@vstarcam.com  ios:  ios@vstarcam.com
pc:  wangsen@vstarcam.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网络摄像机|百万高清网络摄像机|IP Camera|智能家居|VeePai|网络摄像机交流论坛|威视达康旗下论坛    

GMT+8, 2023-3-24 04:18 , Processed in 0.100638 second(s), 33 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表