查看: 55|回复: 0

扣丁学堂HTML5培训详解HTML5录音如何操作

发表于 2018-7-5 11:06:37

不知道有多少的小伙伴接触过HTML5的 Audio API,本篇文章扣丁学堂HTML5培训小编就和大家分享一下HTML5录音方面的问题,文章中会有代码列出,对HTML5开发感兴趣的小伙伴就随着小编一起来了解一下吧。


开始录音前,要先获取当前设备是否支持 Audio API。早期的方法 navigator.getUserMedia 已经被 navigator.mediaDevices.getUserMedia 所代替。正常来说现在大部分的现代浏览器都已经支持 navigator.mediaDevices.getUserMedia 的用法了,当然 MDN 上也给出了兼容性的写法。
const promisifiedOldGUM = function(constraints) {
// First get ahold of getUserMedia, if present
const getUserMedia =
navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
// Some browsers just don't implement it - return a rejected promise with an error
// to keep a consistent interface
if (!getUserMedia) {
return Promise.reject(
new Error('getUserMedia is not implemented in this browser')
);
}
// Otherwise, wrap the call to the old navigator.getUserMedia with a Promise
return new Promise(function(resolve, reject) {
getUserMedia.call(navigator, constraints, resolve, reject);
});
};
// Older browsers might not implement mediaDevices at all, so we set an empty object first
if (navigator.mediaDevices === undefined) {
navigator.mediaDevices = {};
}
// Some browsers partially implement mediaDevices. We can't just assign an object
// with getUserMedia as it would overwrite existing properties.
// Here, we will just add the getUserMedia property if it's missing.
if (navigator.mediaDevices.getUserMedia === undefined) {
navigator.mediaDevices.getUserMedia = promisifiedOldGUM;
}
因为这个方法是异步的,所以我们可以对无法兼容的设备进行友好的提示
navigator.mediaDevices.getUserMedia(constraints).then(
function(mediaStream) {
// 成功
},
function(error) {
// 失败
const { name } = error;
let errorMessage;
switch (name) {
// 用户拒绝
case 'NotAllowedError':
case 'PermissionDeniedError':
errorMessage = '用户已禁止网页调用录音设备';
break;
// 没接入录音设备
case 'NotFoundError':
case 'DevicesNotFoundError':
errorMessage = '录音设备未找到';
break;
以上就是扣丁学堂HTML5在线学习小编给大家分享的HTML5录音方面的问题,希望对小伙伴们有所帮助。想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询,扣丁学堂是专业的HTML5培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的HTML5在线教程供学员观看学习,想要学习HTML5开发的小伙伴快快行动吧。扣丁学堂H5技术交流群:559883758。


文章转载自:扣丁学堂http://www.codingke.com/


回复

使用道具 举报