最近由于工程需要開始研發(fā)基于Windows的自動(dòng)錄屏軟件,很多細(xì)節(jié)很多功能需要處理,畢竟一個(gè)完美的錄屏軟件不是你隨隨便便就可以寫出來(lái)的。首先參考了大部分的錄屏軟件,在研發(fā)的過(guò)程中遇到了很多的問(wèn)題;比如-視頻加載、麥克風(fēng)加載、麥克風(fēng)音量調(diào)節(jié)、視頻播放進(jìn)度控、視頻音量控制、等等很多細(xì)節(jié)部分都需要好好規(guī)劃才能開始做。錄屏采用的是視頻幀的思維邏輯進(jìn)行編寫的。
目前已經(jīng)基本上成型,基于WPF采用了Model - View框架進(jìn)行動(dòng)態(tài)加載,每個(gè)線程與線程之間采用Async異步執(zhí)行,并使用線程等待;錄屏基本功能包含了(展示歷史錄屏記錄、刪除、錄屏、視頻編碼、視頻播放及刪除、麥克風(fēng)調(diào)用(音量調(diào)節(jié)-跟隨系統(tǒng))、加載視頻(拖拉-旋轉(zhuǎn))、系統(tǒng)遮罩 等);編碼的核心是采用FFMPEG(這個(gè)工具真的非常強(qiáng)大);
這邊提供幾個(gè)核心代碼僅供參考:
1-難點(diǎn):系統(tǒng)遮罩核心方法(使用Windows API):
改變屬性的時(shí)候觸發(fā)
API方法
2-難點(diǎn):麥克風(fēng)獲取及控制
<Slider x:Name="volumeSlider" Grid.Column="7" Grid.ColumnSpan="3" Grid.Row="1" Width="100" Height="20" Minimum="0" Maximum="100" Value="100" VerticalAlignment="Center" />