用于音频+视频+屏幕+画布录制的WebRTC JavaScript库

2020-07-17 21:13:07

让流=等待导航器.mediaDevices.getUserMedia({视频:真,音频:真});让记录器=新记录RTCPromisesHandler(流,{类型:';video';});recorder.startRecording();const睡眠=m=>;新承诺(r=>;setTimeout(r,m));等待睡眠(3,000);等待记录器.stopRecording();让blob=等待记录器.getBlob();调用保存对话框。

Navigator.mediaDevices.getUserMedia({video:true,audio:true}).Then(异步函数(Stream){let recorder=RecordRTC(stream,{type:';video';});recder.startRecording();const睡眠=m=>;new Promise(r=>;setTimeout(r,m));等待睡眠(3000);recder.stopRecording(function(){。

<;!--推荐--&><;<;Script src=";https://www.WebRTC-Experiment.com/RecordRTC.js";>;<;/script>;<;!--Use 5.5.6或cdnjs上的任何其他版本-->;<;Script src=";https://cdnjs.cloudflare.com/ajax/libs/RecordRTC/5.5.6/RecordRTC.js";>;<;/script>;<;!--npm即npm install recordrtc&34;-->;<;script src=";node_modules/recordrtc/RecordRTC.js";>;<;/script>;<;!--Bower-->;<;script src=";bower_components/recordrtc/RecordRTC.js";>;<;/script>;

常量记录器=RecordRTC(流,{//音频,视频,画布,gif类型:';video';,//dio/webm//video/webm;codecs=vp9//video/webm;codecs=vp8//video/webm;codecs=H264//video/x-matroska;codecs=avc1//video/mpeg--目前任何浏览器都不支持,//video/mpeg。视频/WebM';,//MediaStreamRecorder,StereoAudioRecorder,WebAssemblyRecorder//CanvasRecorder,GifRecorder,WhammyRecorder Recorder Type:MediaStreamRecorder,//禁用日志禁用Logs:true,//获取基于时间间隔的blob//以毫秒为单位的值时间片:1000,//需要大于等于1000的时间片//通过回调函数ondataAvailable返回blob:function(Blob){},//。//由CanvasRecorder和WhammyRecorder使用//它是一种";Framerate";frame Interval:90,//如果您正在将多个流录制到单个文件中//这将帮助您查看正在录制的内容previewStream:function(Stream){},//CanvasRecorder和WhammyRecorder使用//您可以传递{width:640,Height:480}以及video:HTMLVideoElement,//CanvasRecorder和WhammyRecorder画布使用:{width:640,Height:480},//。采样率:96000,//立体声录像机使用//范围为22050到96000。//强制16 khz录制:desiredSampRate:16000,//立体声录音机使用//合法取值为(2565121024204840968192 16384)。BufferSize:16384,//立体声录像机使用//1或2个音频频道:2,//WebAssemblyRecorder帧速率:30,//WebAssemblyRecorder码率:128000,//MultiStreamRecorder-访问HTMLCanvasElement元素类:';多数据流-混合器});

RecordRTC.type={//开始录制开始Record:function(){},//停止录制//getBlob内部回调函数stopRecording:function(BlobURL){},//暂停录制Record:function(){},//恢复录制继续Record:function(){},//指定时长后自动停止录制setRecordingDuration:function(){},//重置录制状态并移除数据Reset:function(){。//返回录制的Blob getBlob:function(){},//返回Blob-URL Tourl:function(){},//返回data-URL getDataURL:function(DataURL){},//返回内部记录器getInternalRecorder:function(){},//初始化记录器[弃用]initRecorder:function(){},//如果Recorder',则激发;S状态更改onStateChanged:function(State){},//将录制的blob写入索引数据库存储writeToDisk:function(dio:blob,video:blob,gif:blob){},//从索引数据库存储中获取录制的blob getFromDisk:function(dataURL,type){},//[弃用]setAdvertisementArray:function([webp1,webp2]){},//[dedeed。清除所有销毁:function(){},//获取Recorder的状态getState:function(){},//[readonly]属性:Recorder的状态:String,//Recorded blob[readonly]属性blob:blob,//[readonly]数组缓冲区;仅对StereoAudioRecorder Buffer:ArrayBuffer,//RecordRTC version[readonly]version:string,//[readonly]仅适用于StereoAudioRecorder Buffer:ArrayBuffer,//RecordRTC version[readonly]version:string,//[readonly]仅对StereoAudioRecorder Buffer有用