長期以來,音訊與視訊訊息的捕捉一直是Web開發中的一個難點。多年來,我們一直依賴瀏覽器插件來實現這個需求。
在HTML 5中,出現了許多可以存取硬體設備的API,例如存取GPS設備的Geolocation API、存取accelerometer設備的Orientation API、存取GPU設備的WebGL API、存取音訊播放設備的Web Audio API等等。這些API是非常強大的,因為開發者可以直接透過編寫JavaSccript腳本程式碼來存取底層硬體設備。
本文介紹一種新的API,該API透過使用navigatior.getUserMedia()方法來讓Web應用程式擁有存取使用者攝影機與麥克風設備的能力。
捕捉媒體資料的技術發展歷史
在過去幾年裡,開始出現了在Web應用程式中存取客戶端本地設備的需求,因此,W3C組織決定組織一個DAP(Device APIS POLICY)工作小組,來為該需求的實現制定一個統一的標準。
接下來讓我們來看看在2011年發生了哪些事情:
在HTML頁面文件中實現媒體資料的捕捉
DAP工作小組的第一個要製定的標準就是如何在Web應用程式的HTML頁面中實現媒體資料的捕捉。他們決定重載類型為file的input元素(),並且為accept屬性增加一個新的屬性值。
如果開發者想實現使用者透過相機拍照的功能,可以書寫如下所示的程式碼。
錄影資料與音訊資料的程式碼與之類似:
在這些程式碼中,只需使用file控制(類型為file的input元素)即可完成拍照或錄製媒體資料的功能。但是在因為這些程式碼中尚缺乏一些實現與之相關的需求(例如在canvas元素中渲染捕捉到的視訊資料,或者對捕捉到的視訊資料應用WEBGL濾鏡)的能力,所以沒有得到開發者的廣泛應用。
支援瀏覽器:
Android 3.0瀏覽器
Chrome for Android (0.16)
Firefox Mobile 10.0
device元素
如果使用files,捕捉媒體資料後對其進行處理的能力是非常有限的,所以出現了一種新的可支援任何設備的標準。該標準使用device元素。
Opera瀏覽器是第一個透過device元素實現視訊資料捕捉的瀏覽器。幾乎在同一天,WhatWG組織決定使用navigator.getUserMedia()方法來捕捉媒體資料。一個星期後,Opera推出一個新的支援navigator.getUserMedia()方法的瀏覽器。後來,Microsoft工具推出支援此方法的IE 9瀏覽器。
device元素的使用方法如下所示。
<script> <br />function update(stream) { <br />document.querySelector('video') .src = stream.url; <br />} <br /></script>
支援瀏覽器:
不幸的是,目前為止尚沒有一個正式版的瀏覽器中支援device元素。
WEBRTC
最近,由於WebRTC(Web Real Time Communication:Web即時通訊)API的出現,媒體資料捕捉技術又有了一個很大的發展。 Google、Opera、Mozilla等公司都正在努力將其實現在自己的瀏覽器中。
WebRTC API是一個與getUserMedia方法緊密相關的API,它提供一種存取客戶端本地的攝影機或麥克風設備的能力。
支援瀏覽器:
目前為止,在Chrome 18版瀏覽器中,在chrome://flags頁面中進行設定後可使用WebRTC,在Chrome 21版本的瀏覽器中,該API被預設使用,不再需要設定。在Opera 12以上與Firefox 17版本的瀏覽器中預設支援WebRTC API。
使用getUserMedia方法
透過使用getUserMedia方法,我們可以不依靠插件而直接存取客戶端本地的攝影機設備與麥克風設備。
偵測瀏覽器支援
可以透過如下所示的方法來偵測瀏覽器是否支援getUserMedia方法。
function hasG有>程式碼如下:
function hasGethasGetUser) /請注意:在Opera瀏覽器中不使用前綴
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia); if; (hasGetUserMedia()) {
alert('您的瀏覽器支援getUserMedia方法');
}
else {
alert('您的瀏覽器不支援getUserMedia方法');
}
取得存取裝置的權限
為了存取客戶端攝影機裝置與麥克風裝置,我們首先需要取得權限。 getUserMedia方法的第一個參數是用來指定媒體類型的物件。例如,當你想存取攝影機裝置時,第一個參數應該為{video:true},為了同時存取攝影機裝置與麥克風裝置,需要使用{video:true,audio:true}參數,程式碼如下所示:
在這段程式碼中,同時為video元素使用autoplay屬性,如果不使用該屬性,則video元素將停留在所取得的第一幀畫面處。
請注意:在Chrome瀏覽器中,如果只使用{audio:true},則引發BUG,在Opera瀏覽器中,同樣不能使用audio元素。
如果你想讓多個瀏覽器同時支援getUserMedia方法,請使用如下所示的程式碼:
程式碼如下:
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserator.webkitGet mozGetUserMedia || navigator.msGetUserMedia;
var video = document.getElementById('video');
if (navigator.getUserMedia) {
navigator.getUserMedia({vidaudio: trueeounction (stream) {
video.src = window.URL.createObjectURL(stream);
}, onFailSoHard);
}
else {
alert('您的瀏覽器不支援getUserMedia方法');
セキュリティ
一部のブラウザでは、getUserMedia メソッドが呼び出されるときに、カメラまたはマイクへのアクセスを許可するか拒否するかをユーザーに尋ねるプロンプト ウィンドウが表示されます。
写真を撮る
Canvas API では、ctx.drawImage(video,0,0) メソッドを使用して、video 要素内の特定のフレームを Canvas 要素に出力できます。もちろん、ユーザーのカメラから撮影した画像情報をvideo要素に出力しているので、video要素を介してcanvas要素に画像情報を出力することも可能です。つまり、リアルタイムの写真撮影を実現します。関数は次のとおりです。
コードをコピーします
-webkit-filter: グレースケール(1);
}
.sepia {
-webkit-filter: sepia(1);
- webkit-filter:blur(3px);
}
...
スクリプト>
var idx = 0;
var フィルター = ['グレースケール'、'セピア'、'ぼかし'、'明るさ'、'コントラスト'、'色相回転'、
'色相回転2 ', ' hue-rotate3', 'saturate', 'invert', ''];
function changeFilter(e) {
var el = e.target;
el.className = ''; 🎜>var effect = filters[idx % filters.length]; // フィルターをループします。
el.classList.add(effect);
>document.getElementById('video').addEventListener('click',changeFilter,false);

在Win11电脑上听音乐或看电影,如果扬声器或耳机听起来不平衡,用户可以根据自己的需求手动调整平衡级别。那么我们要如何调整呢?针对这个问题,小编带来了详细的操作教程,希望可以帮到大家。如何在Windows11中平衡左右音频通道?方法一:使用“设置”应用点击键并单击设置。Windows单击系统,然后选择声音。选择更多声音设置。单击您的扬声器/耳机,然后选择属性。导航到“级别”选项卡,然后单击“余额”。确保“左”和

从我记事开始,家里就有一对落地式的大尺寸音箱,让我一直认为电视只有配上一套完整的音响系统才能称得上是电视。但是刚开始工作的时候,我买不起专业的家庭音响。经过查询和了解产品定位后,我发现回音壁这个品类非常适合我,不论是音质、体积还是价格都符合我的需求。因此,我决定选择回音壁。精挑细选后,我选中了2024年初Bose推出了这款全景声回音壁产品:Bose家庭娱乐扬声器Ultra。(图片来源:雷科技摄制)一般来说,想要体验到「原汁原味」的杜比全景声效果,需要我们在家中布置一套经过测量、校准的环绕声+吊顶
![调整 Windows 11 上的音频平衡 [左右声道] 的方法](https://img.php.cn/upload/article/000/000/164/169641822765817.jpg)
如果您在Windows计算机上听音乐或看电影,您可能已经注意到一侧的声音比另一侧大。这可能是音频设备的默认设置。幸运的是,调整系统的音频平衡相当容易。本文将介绍执行此操作的步骤。为什么我的耳机一侧在Windows11上更安静?大多数情况下,问题可能是耳机未紧密插入或连接松动。此外,如果耳机插孔损坏,您的声卡问题或音频设备受到干扰,您会注意到声音的差异。另一个原因可能是因为它们内部的布线。电线可能已经松动或彼此断开,这会导致耳机不同部分之间的通信出现问题。如何在Windows11中平衡左右音频通道

虽然Windows能够管理电脑上的声音,但您可能仍希望干预和重置声音设置,以防您遇到音频问题或故障。然而,随着Microsoft在Windows11中所做的美学变化,将这些设置归零变得更加困难。因此,让我们深入了解如何在Windows11上查找和管理这些设置或重置它们以防出现任何问题。如何以7种简单的方式重置Windows11中的声音设置以下是在Windows11中重置声音设置的七种方法,具体取决于您面临的问题。让我们开始吧。方法1:重置应用的声音和音量设置按键盘上的按钮打开“设置”应用。现在点

如果您的某个扬声器出现故障且不再工作,您的音质将受到影响。立即更换它可能不是一种选择,但您可以启用单声道音频设置以获得标准化的声音输出。但是,默认情况下它是禁用的,因此以下是在Windows计算机上将左右通道合并为一个的方法。打开或关闭单声道音频更好吗?这取决于情况。如果您有很多背景噪点或拍摄对象移动太多,那么单声道声音可能是您项目的最佳选择。但是,如果您想要更好地控制声音或每个小声音都很重要的身临其境的体验,立体声模式将是一个更好的选择。单声道音频有哪些好处?听音频不需要太多的注意力。听起来更

win10系统是一款可以进行各种设置和调节的系统,今天小编为大家带来的就是realtek高清晰音频管理器怎么设置麦克风的解决办法!感兴趣的话就快来看看吧。realtek高清晰音频管理器怎么设置麦克风:1、在桌面左下角的显示隐藏图标中找到“realtek高清晰音频管理器”图标。2、点击进入界面中,首先看到的是“扬声器页面”,这个界面可以通过喇叭组态调整喇叭的声音。3、接着是音效,你可以选择自己想要的音效的环境以及“均衡器,流行、摇滚、俱乐部”等等。4、接着是室内矫正音质,室内空间矫正只能够矫正在“

有一些小伙伴反映自己电脑中的声音即使开到了最大,音量依旧偏小,这时就可以将系统中的增强音频功能打开,那么具体应该怎么操作呢,接下来小编就给大家详细介绍一下Win11增强音频的打开方法,有需要的小伙伴可以来看一看。打开方法:1、右击左下角任务栏中的开始,选择选项列表中的"设置"。2、进入到新的界面后,点击"系统"中的"声音"选项。3、随后点击"高级"中的"所有声音设备"。4、然后选择"输出设备"中的"耳机"或者"扬声器"。5、最后找到"增强音频",并将其右侧的开关按钮打开就可以了。

计算机有许多系统服务来支持各种程序的应用。如果电脑没有声音,在排除硬件问题的情况下,大部分音频服务都没有打开,那么win7如何启用音频服务呢?许多朋友比较模糊,所以针对如何启用win7音频服务的问题,下面小编介绍win7音频服务的启用方法。启用win7音频服务的方法。1.在Windows7系统下的计算机桌面上找到计算机,右键选择管理选项。2.在打开的计算机管理界面中找到并打开服务和应用下的服务项目。在右边的服务界面上找到WindowsAudio双击打开修改。4.切换到常规项目,点击启动开启功能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版