Silverlight 里获取摄像头视频

Silverlight 里获取摄像头视频很简单

 

private CaptureSource cs = new CaptureSource();  //提供用来处理来自关联捕获设备的特定音频或视频捕获的方法

  public MainPage()
  {
   // 为初始化变量所必需
   InitializeComponent();
            Loaded += new RoutedEventHandler(MainPage_Loaded);  //xaml 页面加载事件

           //CaptureImageCompleted  事件提供用来处理来自关联捕获设备的特定音频或视频捕获的方法 , 也就是视频抓图时触发的时间
            cs.CaptureImageCompleted += new EventHandler<CaptureImageCompletedEventArgs>(cs_CaptureImageCompleted);
  }

        void cs_CaptureImageCompleted(object sender, CaptureImageCompletedEventArgs e)
        {
             imgCapture.Source = e.Result;  // imgCapture 是指一个图片类 ,  e.Result 是指当触发抓屏事件时捕获的摄像头的那帧图片
        }

        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {

            VideoCaptureDevice vcDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice(); //返回表示客户端系统上的默认视频捕获设备的 VideoCaptureDevice 对象
            cs.VideoCaptureDevice = vcDevice;  //VideoCaptureDevice 描述视频捕获设备(如网络摄相机)需要的和支持的视频格式信息
            VideoBrush vb = new VideoBrush();  //使用视频内容绘制一个区域
            vb.SetSource(cs);  //使用媒体文件或视频捕获设置 VideoBrush 的源
            rc1.Fill = vb; //rc1 是一个矩形 , 这句是指用矩形来显示视频
        }

        private void btnStart_Click(object sender, System.Windows.RoutedEventArgs e)
        {

           //弹出对话框询问用户是否允许开启视频 , 也就是让用户授权视频启动
            if (CaptureDeviceConfiguration.AllowedDeviceAccess || CaptureDeviceConfiguration.RequestDeviceAccess())
            {
                cs.Start();//开始视频
            }
        }

        private void btnStop_Click(object sender, System.Windows.RoutedEventArgs e)
        {
         //暂停视频
          cs.Stop();
  }

        private void btnCapture_Click(object sender, System.Windows.RoutedEventArgs e)
        {
         //抓屏
            if (cs.State == CaptureState.Started)
            {
                cs.CaptureImageAsync();
            }
        }

转载于:https://www.cnblogs.com/duogemajia/archive/2012/02/20/2359145.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值