2.7、音频采集配置以及桌面录制

文章导读:本节的重点内容,第一、学习音频采集的重要参数;第二、学习桌面录制相关的API。最后,布置本章的作业。推荐阅读方式:理解+实操。

   先来看看音频采集的重要参数,代码如下所示。

const constrains = {
    audio:{
        volume:0.5,//音量大小,取值范围 0 - 1
        sampleRate:32000,//采样率,可选值如:48000、32000、16000、8000
        sampleSize:16,// 采样大小
        echoCancellation:true,// 是否开启回音消除,可选值:true/false
        autoGainControl:true,//是否开启自动增益,可选值:true/false
        noiseSuppression:true,//是否开启降噪功能,可选值:true/false
        latency:0.3,//延迟大小,单位毫秒,500毫秒及以内是比较好的状态
        channelCount:1,//声道数量,一般情况下单声道就够了
        deviceId:"",
    }
}

如上所示的代码,接下来分别对这些参数做简要的介绍:

①、volume。表示音量的大小,取值范围 0 到 1 之间。

②、sampleRate。采样率,通俗来讲就是单位时间内采集声音样本的数量,采样率越高音频就越接近自然声音,但人类的听觉能识别的采样率是有限的,一般超过96000之后就无法分辨。采样率通常选择的值是:48000、32000、16000、8000。

③、sampleSize。采样大小,指定单个采样点所占位数,即线性样本大小(以位为单位)。通常设置为16。

④、echoCancellation。是否开启回声消除。

⑤、autoGainControl。是否开启自动增益。很多小伙伴可能不太理解增益和音量的区别,通俗来解释,增益控制的是音频输入时的信号强度,直接决定音频的轮廓,增益越大越接近原生,但是噪音也越多。而音量控制的是声音的响度。

⑥、noiseSuppression。是否开启降噪功能。

⑦、latency。延迟时长。单位秒,在音视频通信中,延迟一直是经常讨论的话题,延迟直接影响通话质量。通常情况下,音视频通信在控制500毫秒以内的延迟是比较理想的,超过500毫秒就明显卡顿,所以配置该参数的时候可根据实际情况来配置,高延迟降低了音频的质量,但却可以控制传输的速率;一般选择0.3或者0.4即可。

⑧、channelCount。声道数量。就是我们常听到的单声道、双声道。普通的音视频通信单声道就够了,但在某些特定的场景,比如乐器的演奏,使用双声道效果会更好。

⑨、deviceId。设备的ID。和视频的配置是一致的,这里不在赘述。

这些就是音频采集的可配置参数,接下来再来看看第二块重要的内容:桌面录制。

  桌面录制功能在实际的工作中是非常常见的,比如培训、会议、远程协助等都应用到桌面录制,webrtc中也有对应的API来实现。但该功能目前在chrome浏览器中暂属于试验性功能,因此想要使用它,请下载最新的chrome浏览器或者chrome内核的浏览器来测试。我电脑当前的chrome版本是67.0.3396.99,需要手动开启“Experimental Extension APIs”选项才能调试,如下图2.7.1。

图 2.7.1 (开启Chrome 试验性功能)

屏幕录制的API是:navigator.mediaDevices.getDisplayMedia(constrains),与getUserMedia用法类似,当然constrains参数也是类似,调用该API后,浏览器将弹出一个询问窗口,如下图2.7.2所示。

 

图 2.7.2 (共享屏幕设备选择询问框)

 如上图,用户可以选择共享的类型:共享整个屏幕、共享某一个应用窗口、共享chrome中的某一个标签。该API的用法请读者自行参照getUserMedia来实践。

  本节的两个内容就讲完了, 总结一下:首先我们学习了音频采集参数的配置,常用的参数一共有九个,工作中,读者根据需求配置即可;其次学习了桌面录制的API——getDisplayMedia,关于该方法的应用请参照getUserMedia。 在这里留一个题外任务:请读者朋友查阅资料解决两个问题,第一、怎么实现视频的拍照;第二、录制完视频之后,不直接下载,而是先预览(播放),只有当用户点击下载按钮才开始下载。这两个问题,欢迎各位读者与我交流,如果能自己搞定,请同下面布置的任务一起完成。

  最后,布置本章的任务。 请读者为本软件扩展如下两个功能:①、扩展音频参数配置,要求用到上述讲到的九个参数(volume、sampleRate、sampleSize、echoCancellation、autoGainControl、noiseSuppression、latency、channelCount、deviceId)。②、扩展桌面录制的功能,即用户可以录制并保存桌面视频。学习交流微信:c35353,备注:webrtc。

posted on 2020-03-12 23:07  Rajan  阅读(1002)  评论(0编辑  收藏  举报
扫码和作者预约吧