?背景
? ? ? ? ?VLC控件原有接口具有視頻截圖方法,即video對象的takeSnapshot方法,但是該方法返回的是一個IPicture對象,不適合在谷歌等現代瀏覽器上使用。因此,本人增加一個新的視頻截圖方法takeSnapshot2B64方法,直接將視頻截圖轉成base64數據流返回出來。非常適合谷歌、火狐、Edge等現代瀏覽器上使用。
????????allWebPlugin中間件是一款為用戶提供安全、可靠、便捷的瀏覽器插件服務的中間件產品,致力于將瀏覽器插件重新應用到所有瀏覽器。它不僅可以實現ActiveX控件在現代瀏覽器上使用,而且集成也非常方便。
????????allWebPlugin中間件VLC專用版內部以包含VLC控件,只需安裝一次allWebPlugin中間件,VLC控件不需注冊,就可以在Web系統中應用VLC控件。
alWebPlugin中間件核心優勢
1、自創定位算法,實現插件與頁面布局無縫銜接,極致用戶體驗。
2、自創插件接口調用方法,保持原汁原味的接口調用及事件響應方式,輕松實現OA系統升級改造。
3、支持同一頁面或不同頁面同時加載多個插件,適應各種復雜應用場景。
4、自主創新、安全可控,不受瀏覽器插件技術限制,支持更多瀏覽器(谷歌、火狐、Edge、360瀏覽器等)。
5、創新沙箱機制,隔離插件與瀏覽器運行環境,增強插件與瀏覽器穩定性和安全性。
6、攻克諸多技術難點,實現插件不修改、不注冊也能使用,極大的降低插件開發量和維護量。
準備工作
1、下載allWebPlugin中間件產品,具體如下:
百度網盤
視頻截圖接口介紹
在video對象下,增加takeSnapshot2B64接口,具體如下
string takeSnapshot2B64()
接口說明:截獲當前播放的視頻圖像,并將其轉成base64編碼。圖像默認為jpg格式。
參數說明:無
返 回 值:字符串? ?表示截獲的圖像的base64數據流。
下面代碼實現視頻截圖,并將截圖保存到下載列表:?
function snapshot(){var video = vlcPlugin.video();//獲取vlc截圖base64圖片流var imageb64 = video.takeSnapshot2B64();//將圖片保存到下載列表var bimage = atob(imageb64);var byteNumbers = new Uint8Array(bimage.length);for (var i = 0; i < bimage.length; i++) {byteNumbers[i] = bimage.charCodeAt(i);} var blob = new Blob([byteNumbers], { type: "image/jpg" });// 創建一個隱藏的 <a> 元素var link = document.createElement("a");var url = URL.createObjectURL(blob);link.href = url;link.download = "vlc_snapshot.jpg"; // 設置下載文件名document.body.appendChild(link); // 將鏈接添加到頁面link.click(); // 觸發下載document.body.removeChild(link); // 下載完成后移除鏈接
}

以上詳細代碼,請查看VLC包vlc.html示例。
