WebRtc07: 音视频录制实战

录制基础知识

MediaRecorder

// stream通过getUserMedia获取
var mediaRecorder = new MediaRecorder(stream[,option]);

option参数说明

在这里插入图片描述

API和事件

// API
// 开始录制媒体,timeslice是可选的,如果设置了会按时间切片存储数据
MediaRecorder.start(timeslice)
// 停止录制,此时会触发包括最终Blob数据的dataavailable事件
MediaRecorder.stop()
// 暂停录制
MediaRecorder.pause()
// 恢复录制
MediaRecorder.resume()
// 类型支持
MediaRecorder.isTypeSupported()

// 事件
// 数据有效时触发, 每次记录一定时间的数据时(如果没有指定时间切片,则记录整个数据)会定期触发
MediaRecorder.ondataavailable
// 当有错误发生时,录制会被停止
MediaRecorder.onerror

JavaScript几种数据存储方式

  • 字符串
  • Blob:类似一块搞笑的存储区域,方便将整个缓冲区写入文件
  • ArrayBuffer
  • ArrayBufferView

实战

录制音视频

实测使用firefox浏览器不支持webm
index.html

<html>
    <head>
            <title>WebRtc capture video and audio</title>
            <style>
                .none {
     
     
                        -webkit-filter: none;
                }
                .blur {
     
     
                        -webkit-filter: blur(3px);
                }
                .grayscale {
     
     
                        -webkit-filter:grayscale(1);
                }
                .invert {
     
     
                        -webkit-filter: invert(1);
                }
                .sepia {
     
     
                        -webkit-filter:sepia(1);
                }
            </style>
    </head>
    <body>
                <div>
                        <label>audioSource:</label>
                        <select id="audioSource"></select>
                </div>
                <div>
                        <label>audioOutput:</label>
                        <select id="audioOutput"></select>
                </div>
                <div>
                        <label>videoSource:</label>
                        <select id="videoSource"></select>
                </div>
                <div>
                        <label>filter:</label>
                        <select id="filter">
                                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值