版本有分試用版跟正版,關於差異就請各位客觀自己看「About Expression Encoder」
不過Expression Encoder 4 目前也不提供購買了
預設儲存的檔案格式為xesc如果要轉成其他的格式可以透過MediaItem及Job來做轉換
Code:
using Microsoft.Expression.Encoder.ScreenCapture; using Microsoft.Expression.Encoder.Devices; using System; using System.Drawing; using System.Windows.Forms; using System.Collections.ObjectModel; namespace TestProject { public partial class Form1 : Form { private ScreenCaptureJob _screenJob = new ScreenCaptureJob(); private Boolean _isLock = false; public Form1() { InitializeComponent(); } private void Start() { //輸出資料夾 FolderBrowserDialog dialog = new FolderBrowserDialog(); if (dialog.ShowDialog() == DialogResult.OK) { //檔案路徑 String path = dialog.SelectedPath; //檔案名稱 String fileName = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"); //取得音源裝置 //Collection<EncoderDevice> audioDevices = EncoderDevices.FindDevices(EncoderDeviceType.Audio); //設定音源來源 //_screenJob.AddAudioDeviceSource(audioDevices.ElementAt(Device_index)) //輸出檔案路徑 _screenJob.OutputScreenCaptureFileName = String.Format(@"{0}\{1}.xesc", path, fileName); //主螢幕尺寸 var size = Screen.PrimaryScreen.Bounds; //擷取整個螢幕 _screenJob.CaptureRectangle = new Rectangle(0, 0, size.Width, size.Height); //畫質 _screenJob.ScreenCaptureVideoProfile.Quality = 100; //張數 _screenJob.ScreenCaptureVideoProfile.FrameRate = 30; //擷取滑鼠 _screenJob.CaptureMouseCursor = true; //開始擷取 _screenJob.Start(); } } private void button1_Click(object sender, EventArgs e) { if (!_isLock) { _isLock = true; Start(); } else { _isLock = false; //停止擷取 _screenJob.Stop(); } } } }
參考資料:
https://msdn.microsoft.com/en-us/library/microsoft.expression.encoder(v=expression.40).aspx
https://msdn.microsoft.com/en-us/library/microsoft.expression.encoder.presets_members(v=expression.40).aspx
https://msdn.microsoft.com/en-us/library/microsoft.expression.encoder.profiles(v=expression.40).aspx