2.8、本章总结
文章导读:本文来总结下本章的内容。推荐阅读方式:理解。
本文对本章的知识做一个总结,温故而知新。
前半部分的篇幅(2.1 - 2.3 )讲解理论知识;后半部分(2.4 - 2.6 )项目实战。理论部分的知识点有:
一、 内网穿透。简单讲解了内网穿的原理,并且通过工具完成了内网穿透环境的搭建,一句话来概内网穿透:通过内网穿透工具实现将本机的服务公开至互联网,方便基于互联网来调试本机程序。内网穿透的其他应用场景,如开发微信平台相关应用时,调试的各类接口:微信登录授权、微信支付等, 使用本机的内网IP地址是无法调试的,而基于公网服务器的调试又非常麻烦,所以内网穿透就是一个很好的解决方法。
二、getUserMedia。这个方法挂在“navigator.mediaDevices”对象中,作用是:读取本机媒体设备(音频设备、视频设备)的媒体流数据,默认情况下读取的是默认的媒体设备,但是在实际开发过程中,我们可以按需选择设备,通过参数deviceId来指定。getUserMedia的参数分为两部分:视频参数和音频参数。在2.3节中,针对视频参数做了详细的讲解,常见的视频参数有:width、height、facingMode、frameRate、deviceId、resizeMode。在2.7节中,对音频参数做了详细的讲解,常见的音频参数有:volume、sampleRate、sampleSize、echoCancellation、autoGainControl、noiseSuppression、latency、channelCount、deviceId。
三、enumerateDevices。这个方法挂在“navigator.mediaDevices”对象中,作用是:列举本机可以的媒体设备列表,每个设备的属性有:deviceId、groupId、label、kind。
四、滤镜。webrtc本身不做视频的渲染,而是由上层应用来负责,所以web视频的滤镜的功能需要通过CSS3的filter属性来实现。
五、桌面录制功能。 对应的API是getDisplayMedia,用法可以参照getUserMedia。
实战部分:本章带领读者开发了一个在线的音视频录制软件,巩固了本章的内容,同时在设计软件时,严格遵照“行为结构样式相分离”的设计原则,初步运用了JS 的面向对象功能。供读者参考。本章内容在撰写过程中,难免有错误或者不合理之处,望读者指出。
本章完。