我想在网站上添加视频录制功能.我一直在寻找并尝试所有可能的解决方案,但没有任何工作正常.
我试过下面的解决方案
WebRTC
我知道使用WebRTC我们可以从网络摄像头和麦克风获取流.我发现了很多关于相同的文章,但没有一个解释了如何从该流中提取blob并保存或上传到服务器.我得到的是获取userMediaStream并通过创建blob对象URL在浏览器中显示它
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
var video = document.querySelector('video');
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
}, errorCallback);
} else {
video.src = 'somevideo.webm'; // fallback.
}
Run Code Online (Sandbox Code Playgroud)
如何从此流中提取对象,以便保存或上传到服务器?
RecorRTC
RecordRTC是由Mauz Khan编写的用于视频/视频录制的库,实际上很好.使用这个库,我能够录制视频和音频,但是有一些问题,如下所示
Blob对象一个用于音频,一个用于视频,为了生成最终文件,我需要将这些文件合并到最终视频文件中.我FFMPEG用来转换和合并服务器上的文件.Array memory out of exception ,我正在记录更多4 min10 MB MediaStreamRecorder
这是Mauz Khan的另一个库,它在特定的时间间隔后给出记录的blob.我认为这将解决我的内存异常问题.所以我实现如下
在间隔上获取blob块并将其发布到服务器
使用转换小视频文件中的blob块 FFMPEG
最后将所有小文件合并到最终使用FFMPEG完整的视频文件
我现在想用纯javascript录制视频,WebRTC UserMedia API但现在我真的很震惊,因为甚至没有一篇文章解释How to record video …
new Date().toLocaleDateString('en-US'); // "?8?/?17?/?2018"new Date("8/17/2018") //valid date new Date(new Date().toLocaleDateString('en-US')) // Invalid Date我试图创造date,local date
string (see screenshot)但它没有工作IE11 only.它可以正常使用date string.
我知道有问题"" double quotes但却无法使其正常工作.
有什么建议吗?
我一直致力于在Angular app客户端进行大量计算,因为它UI被阻止了.我想Web worker在Angular CLI项目中使用在UI一个线程和重处理中运行background thread.
有没有人有想法
Web Workers在Angular CLI一些引用
Angular CLI生成的应用程序与Web Workers
https://github.com/angular/angular-cli/issues/5885
我想要类似的东西 class = "myClass {{classVar}}"
我试图在范围内使用变量值来连接类名但不起作用.
<div *ngFor="let classVar of classList" >
<span [ngClass]="'myClass' classVar "></span>
</div>
Run Code Online (Sandbox Code Playgroud) 这是我的 html 代码
<table>
<thead>
<tr class='tableHeader'>
<div fxLayout="row" fxLayoutAlign="start center" fxFlex="1 0 auto">
<td fxFlex="22" class="pr-4">Name</td>
<td fxFlex="15" class="pr-4">Price</td>
<td fxFlex="15" class="pr-4">Loan Term</td>
<td fxFlex="15" class="pr-4">Quantity</td>
<td fxFlex="15" class="pr-4">Deposit</td>
<td fxFlex="15" class="pr-4">Total</td>
</div>
</tr>
</thead>
<tbody>
<tr [formGroup]="loanProductForm">
<div fxLayout="row" fxLayoutAlign="start center" fxFlex="1 0 auto">
<td fxFlex="22">
<mat-form-field appearance="outline" fxFlex="100" class="pr-4">
<mat-label>Product </mat-label>
<mat-select formControlName="productId" required>
<mat-option *ngFor="let product of productList" [value]="product.productId">
{{product.name}}
</mat-option>
</mat-select>
</mat-form-field>
</td>
<td fxFlex="15">
<mat-form-field appearance="outline" fxFlex="100" class="pr-4">
<mat-label>Price </mat-label> …Run Code Online (Sandbox Code Playgroud) 我们有报告页面,用户可以从CSV导出报告.在服务器中,C# MVC我们MemoryStream在数据转换后创建并写入每一行,最后发送响应为File.完成请求后,浏览器会自动下载此文件.由于报告需要很长时间才能生成,因此用户必须在阻塞状态下等待它.
为了解决这个问题,我通过创建发送Async Ajax request和保存响应.
这很好用如果用户停留在报告页面上,直到所有报告都被下载,但是如果用户从报告页面导航到其他页面则会丢失.
所以我有一些以下问题 CSV fileBlob URLAjax request response
Ajax request在页面重新加载过程中会发生什么我可以在 Visual Studio 2017 中看到以千为单位的 Application Insights。我阅读了 Application Insights,但并没有完全理解它的用途。
如下图所示,它在 Application Insights 中显示为 25K,并且还在不断增加。Messaging_TestApp是用于 NService 总线的 SQL 数据库名称。
谁能解释一下什么是 Application Insights 以及为什么数字会增加?
我想添加/替换object从array of objects通过测试一些properties反对array object
更换 object if name and id matches
添加object到array if name and id does not match from array objects
我正在使用下面的代码,它的工作正常,但我不确定这是一个好的解决方案。
let arr = [{name: 'test1', id:1, data: {a:1} }, {name:'test2', id:2, data: {a:2}}]
let obj = {name:'test3', id:3, data: {a:3}}
let itemFound = false;
let newArr = arr.map((item)=>{
let test = item.name === obj.name && item.id === obj.id;
if(test){
itemFound = true;
}
return test ? obj …Run Code Online (Sandbox Code Playgroud)我想从区域设置字符串中检索国家/地区代码。
/^([a-z]{2})-([A-Z]{2})$/这适用于固定大小的区域设置代码,但不适用于动态。我知道国家/地区代码位于末尾由破折号分隔的两个字符。
代码 :
const REG = /^([a-z]{2})-([A-Z]{2})$/;
getCountryCode(code) {
var match = code.match(REG)
if(!match || match.length < 1) return ''
return match[1]
}
Run Code Online (Sandbox Code Playgroud)
输入 ==> 预期输出
en-US ==> US
quc-Latn-GT ==> GT
sw-KE ==> KE
en ==> ''
Run Code Online (Sandbox Code Playgroud)