在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用JS實現簡單的屏幕錄像機

京東云 ? 來源:京東保險 張潔 ? 作者:京東保險 張潔 ? 2024-10-09 15:27 ? 次閱讀

作者:京東保險 張潔

本文將介紹如何用JS實現簡單的屏幕錄像機。

一、錄制準備

創建一個按鈕

Start recording

書寫JavaScript

var RECORDING_ONGOING = false;
var recordingToggle = document.getElementById("recording-toggle"); // 按鈕

recordingToggle.addEventListener("click", function(){
     RECORDING_ONGOING = !RECORDING_ONGOING; // 開始 / 停止 錄制
     if(RECORDING_ONGOING){
         recordingToggle.innerHTML = "Stop Recording";
         startRecording(); // 開始錄制
     } else {
         recordingToggle.innerHTML = "Start Recording";
         stopRecording(); // 停止錄制
 }
});

看起來內容很多,但實際上,只是向按鈕添加一個事件偵聽器來開始和停止記錄并相應地更改文本。

二、開始錄制

在寫功能函數之前,聲明 3 個全局變量(在函數之外)。

var blob, mediaRecorder = null;
var chunks = [];

現在,開始屏幕錄制

async function startRecording(){
     var stream = await navigator.mediaDevices.getDisplayMedia(
         {video: {mediaSource: "screen"}, audio: true}
     );

     deviceRecorder = new deviceRecorder(stream, {mimeType: "video/webm"});
}

在用戶屏幕之外創建媒體流。媒體記錄器有一個mimeType. 這是你想要的輸出文件類型。

可以mimeTypes 在此處閱讀更多相關信息。

Edge 支持video/webmmime 類型。這是文件擴展名.webm。可以通過以下方式檢查瀏覽器是否支持mimeType:

console.log(MediaRecorder.isTypeSupported("video/webm"))
console.log(MediaRecorder.isTypeSupported("video/mp4"))
console.log(MediaRecorder.isTypeSupported("video/mp4;codecs=avc1"))

向該函數添加幾行startRecording

 deviceRecorder.ondataavailable = (e) => {
     if(e.data.size > 0){
         chunks.push(e.data);
     }
 }
 deviceRecorder.onstop = () => {
     chunks = [];
 }
 deviceRecorder.start(250)

每當有數據時,都會將其添加到塊數組(之前定義)中。當停止錄制時,將調用該stopRecording() 函數。

三、停止錄制

function stopRecording(){
     var filename = window.prompt("File name", "video"); // Ask the file name

     deviceRecorder.stop(); // 停止錄制
     blob = new Blob(chunks, {type: "video/webm"})
     chunks = [] // 重置數據塊
     var dataDownloadUrl = URL.createObjectURL(blob);

     // 將其下載到用戶的設備上
     let a = document.createElement('a')
     a.href = dataDownloadUrl;
     a.download = `${filename}.webm`
     a.click()
 
     URL.revokeObjectURL(dataDownloadUrl)
}

用JS做錄屏就是這么簡單。如果你想要 mp4 或其他格式,則必須使用 API 進行轉換或自己進行轉換。

? 瀏覽器會通知是否正在共享屏幕

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 錄像機
    +關注

    關注

    1

    文章

    93

    瀏覽量

    28345
  • JS
    JS
    +關注

    關注

    0

    文章

    78

    瀏覽量

    18409
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    松下NV一G30錄像機常見故障檢修實例

    電子發燒友網站提供《松下NV一G30錄像機常見故障檢修實例.pdf》資料免費下載
    發表于 05-17 17:20 ?0次下載

    松下NV-G33型錄像機故障速修

    NV—G30、G33錄像機磁鼓不轉故障的檢修 2
    發表于 05-17 15:37 ?0次下載

    NV—G30錄像機電源電路原理與檢修

    NV—G30、G33錄像機磁鼓不轉故障的檢修
    發表于 05-17 15:34 ?1次下載

    AIWA JS215維修手冊

    電子發燒友網站提供《AIWA JS215維修手冊.pdf》資料免費下載
    發表于 04-01 16:44 ?2次下載

    GS1-N2:雙核心異構 AI 硬盤錄像機

    Firefly推出雙核心異構AI硬盤錄像機GS1-N2,采用雙處理器架構,分別負責視頻解碼和AI處理,優化資源分配,增強AI處理能力,支持最高8K視頻解碼。8個千兆網接口,可接駁符合ONVIF
    的頭像 發表于 03-21 16:52 ?482次閱讀
    GS1-N2:雙核心異構 AI 硬盤<b class='flag-5'>錄像機</b>

    NV-C2P10:雙核心異構 AI 硬盤錄像機

    Firefly推出雙核心異構AI硬盤錄像機——NV-C2P10,采用雙處理器架構,分別負責視頻解碼和AI處理,優化資源分配,增強AI處理能力,支持最高8K視頻解碼;具備8個千兆網接口,可接駁符合
    的頭像 發表于 03-19 16:32 ?478次閱讀
    NV-C2P10:雙核心異構 AI 硬盤<b class='flag-5'>錄像機</b>

    AWTK-WEB 快速入門(4) - JS Http 應用程序

    導讀XMLHttpRequest改變了Web應用程序與服務器交換數據的方式,fetch是其繼任者。本文介紹一下如何使用JS語言開發AWTK-WEB應用程序,并用fetch訪問遠程數據。AWTKDesigner新建一個應用程
    的頭像 發表于 01-22 11:31 ?397次閱讀
    AWTK-WEB 快速入門(4) - <b class='flag-5'>JS</b> Http 應用程序

    一款支持USB攝像頭輸入錄像的高清錄播

    春源麗影4KR-05高清錄像機,不僅支持HDMI輸入進行4K高清錄制,還支持USB高清攝像頭輸入錄制!不僅可以錄制4K高清音視頻,還可以一鍵切為單獨錄音,可以錄制無損MP3音頻。支持一鍵錄制、暫停
    的頭像 發表于 12-24 16:01 ?859次閱讀
    一款支持USB攝像頭輸入<b class='flag-5'>錄像</b>的高清錄播<b class='flag-5'>機</b>

    AWTK-WEB 快速入門(2) - JS 應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用JS語言開發AWTK-WEB應用程序。AWTKDesigner新建一個應用程序先安裝AWTKDesigner:
    的頭像 發表于 12-05 01:04 ?436次閱讀
    AWTK-WEB 快速入門(2) - <b class='flag-5'>JS</b> 應用程序

    Node.js小科普和Node.js安裝常見管理工具

    Node.js是一個JavaScript的運行環境,用來執行JavaScript代碼。 為什么會出現這么一個運行環境呢,從JavaScript研發初衷可以看出它是為了運行在瀏覽器中的,讓網頁交互更加
    的頭像 發表于 11-23 15:37 ?382次閱讀
    Node.<b class='flag-5'>js</b>小科普和Node.<b class='flag-5'>js</b>安裝常見管理工具

    aic3104 adc錄像白躁音很大怎么解決?

    aic3104adc 錄像白躁音很大 adc 高通濾波有效嗎示波器量過時鐘 mclk 12.288 mhz;wclk 48000 khz ;bclk1.536mhz adc 增益調小 采集 的聲音也會變小請問 aic310
    發表于 10-16 06:11

    鴻蒙跨端實踐-JS虛擬機架構實現

    類似的框架,我們需要自行實現以確保核心基礎能力的完整。 鴻蒙虛擬的開發經歷了從最初 ArkTs2V8 到 JSVM + Roma新架構方案 。在此過程中,我們實現了完整的鴻蒙版的“J2V8”和 基于系統JSVM的
    的頭像 發表于 09-30 14:42 ?2911次閱讀
    鴻蒙跨端實踐-<b class='flag-5'>JS</b>虛擬機架構<b class='flag-5'>實現</b>

    推薦一個支持js的嵌入式設備開發平臺

    可以通過vscode開發js,實時推送js代碼到設備里運行,無需編譯,支持屏幕,感興趣的可以看看 https://github.com/duoxianwulian/dxdop 提供很多js
    發表于 09-04 14:04

    公交車安全與監控:車載監控的應用與發展

    車載錄像機可以把圖像記錄和保存下來的人類科技發展的產物;安防行業升華了這一項功能的含義,用在了安全防范中視頻記錄保存,把監控攝像接受的視頻完好的保存下來,方便查閱,調用;車載錄像機的性質也是如此
    的頭像 發表于 08-05 10:17 ?777次閱讀

    可編程振蕩器替換SiTime應用于NVR(網絡視頻錄像機

    可編程振蕩器替換SiTime應用于NVR(網絡視頻錄像機
    的頭像 發表于 06-24 09:51 ?552次閱讀
    可編程振蕩器替換SiTime應用于NVR(網絡視頻<b class='flag-5'>錄像機</b>)
    主站蜘蛛池模板: 午夜噜噜噜私人影院在线播放 | 亚洲一区中文字幕在线 | 欧美亚洲综合图区在线 | 伊人婷婷色香五月综合缴激情 | 天天操夜夜操 | 伊人草 | 免费看真人a一级毛片 | 72种姿势欧美久久久久大黄蕉 | 欧美性视频一区二区三区 | 亚洲精品美女 | 日韩第五页 | 人人搞人人爱 | 亚洲精品456人成在线 | 美女被猛男躁免费视频网站 | 狠狠色噜噜狠狠色综合久 | 午夜影院免费在线观看 | 午夜视频在线观看一区 | 成人久久久| 美女免费观看一区二区三区 | 午夜精品影院 | 色女孩网站 | 天天看片天天干 | 国产色婷婷免费视频 | 欧美色图亚洲激情 | 69女poren18中国 | 欧美成人3d动漫在线播放网站 | 五月天婷婷导航 | 亚洲高清视频一区 | 欧美黄三级在线观看 | 在线黄 | 午夜dy888理论 | 久久人人澡 | 日本黄色短视频 | 午夜影视在线观看 | 四虎永久免费网站入口2020 | 五月激情综合丁香色婷婷 | 乱码中文字幕人成在线 | 黄视频网站在线看 | 午夜剧场黄色 | 日本一区二区高清免费不卡 | 国产精品久久久久国产精品三级 |