小编ish*_*hah的帖子

RecordRTC:Ondataavailable 被调用两次。只有第一个文件正确,其他文件已损坏或太小

我想以2秒的间隔记录本地和远程流并用Ajax上传到服务器。但问题是,ondataavailable 方法被调用了两次,因此同一个视频被上传到服务器两次。第一个视频可以正常播放,而其余视频要么已损坏,要么非常小(不到一秒)。所有视频的大小几乎相同!

我也尝试过 MediaRecorder API,但问题是一样的。我尝试过 5 秒的间隔,但仍然没有成功!

这就是我获取本地流的方式:

navigator.mediaDevices.getUserMedia({
    video: false,
    audio: true
}).then(function (myStream) {
    localStream = myStream;

    localStream.getTracks().forEach(function (track) {
        yourConn.addTrack(track, localStream);
    });
}).catch(function (error) {
    streamAdded = false;
    console.warn('Could not detect microphone');
    return false;
});

Run Code Online (Sandbox Code Playgroud)

这就是我执行录音的方式:

yourConn.ontrack = function (e) {
   remoteVideo.srcObject = e.streams[0];

   let recorder = RecordRTC([localStream, e.streams[0]], {
      mimeType: 'video/webm;codecs=h264',
      type: 'video',
      timeSlice: 5000,
      ondataavailable: function(blob) {
        uploadBlob(blob);
      },
   });

   recorder.startRecording();
}

Run Code Online (Sandbox Code Playgroud)

上传Blob函数:

var formData = new FormData();
formData.append('recorded_file', mp4File);

$.ajax({
    url: myURL,
    data: formData, …
Run Code Online (Sandbox Code Playgroud)

javascript mediarecorder webrtc recordrtc rtcpeerconnection

5
推荐指数
1
解决办法
2729
查看次数

ICE vs STUN vs TURN

我读过ICE是 WebRTC 服务器上的代理,它将用户的 SDP 信息发送到 STUN 或 TURN 服务器。
STUN 和 TURN 服务器提供此 SDP 信息并为用户建立 P2P 连接。

真的吗?
那么,STUN 和 TURN 服务器之间的确切区别是什么?
如果ICE代理配置了TURN服务器,数据流会发生什么?在这种情况下,TURN 只是充当数据报转发器?

stun webrtc turn

5
推荐指数
2
解决办法
6039
查看次数

将邮件发送到用户电子邮件地址-Laravel 5.4

我想向刚刚输入电子邮件地址的用户发送电子邮件。

像这样,

$email = $request->email;

Mail::send('emails.info', $data, function ($message) {

    $message->from('myemail@gmail.com', 'My Email');

    $message->to($email)->subject('The subject');

});
Run Code Online (Sandbox Code Playgroud)

但这返回一个错误:

未定义变量:电子邮件

问题出在哪里?

php email laravel

2
推荐指数
1
解决办法
2652
查看次数

使用JavaScript进行模式验证

我只想使用字母和数字组成的模式。

这就是我的方法

JavaScript文件:

var pattern_checked = checkPattern(); 

function checkPattern(){
        var elem = document.getElementById("name");

        var pattern = elem.getAttribute("[a-zA-Z0-9_]");
        var re = new RegExp(pattern);
        if (re.test(elem.value)) {
            return true;
        } else {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是在这两种情况下,我都错了。

该代码有什么问题?

javascript regex pattern-matching

1
推荐指数
1
解决办法
8022
查看次数