WPF:小笔记--WPFMediaKit

WPF:小笔记--WPFMediaKit

介绍

WPFMediaKit:获取电脑内视频设备画面的Nuget程序包

安装

右键引用->管理Nuget程序包->搜索MediaKit->安装第一个(这里使用2.2.0)
在这里插入图片描述

使用

获取电脑的视频设备

var videoDevices = MultimediaUtil.VideoInputNames;// 获取所有视频设备	 
string videoName = videoDevices[0] ;// 选择第一个

设置视频播放控件

VideoCaptureElement video = new VideoCaptureElement()
{
	LoadedBehavior = WPFMediaKit.DirectShow.MediaPlayers.MediaState.Close, 
 	FPS = 30
};
video.VideoCaptureSource = videoName;// 设置视频设备源	 
video.Play();// 播放视频画面
video.Stop();// 暂停视频画面
video.Close();// 关闭视频画面

截取视频画面

  RenderTargetBitmap bmp = new RenderTargetBitmap((int)video.ActualWidth, (int)video.ActualHeight, 96, 96, PixelFormats.Default);
  video.Measure(video.RenderSize);
  video.Arrange(new Rect(video.RenderSize));
  bmp.Render(video);

注意

  • 控件打开视频设备比较慢。
  • 如在其父级面板Loaded事件中设置视频设备并播放时,摄像头会打开失败,这之后再调用播放也无效。
    解决:
    更改初始启动摄像头的事件
    // 视频控件的加载事件
    private void video_Loaded(object sender, RoutedEventArgs e)
    {
    	video.VideoCaptureSource = videoName;
    	video.Play();// 播放视频画面
    }
    
    或者
    打开视频设备已失败后再次设置:
     // 重设当前视频设备源
     video.VideoCaptureSource = null;
     video.VideoCaptureSource = videoName;
     // 播放视频画面
     video.Play();
    
  • 若视频控件被父级面板裁切( ClipToBounds=“True”),对其截取会保留的是被裁切后的图像(若控件实际大小比裁切后大多余面积以透明区域填充在图像右下侧)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值