记录记录中的文件大小



是否有任何方法可以获取记录时的文件大小?因此,当录制量达到最大尺寸时,我可以停止录制?

当前有唯一的方法可以停止录制,使用停止按钮停止并使用" setRecordingDuration(("设置持续时间:

function successCallback(stream) {
    // RecordRTC usage goes here
    var options = {
        mimeType: 'audio/mp3', // or video/webm;codecs=h264 or video/webm;codecs=vp9
        //                audioBitsPerSecond: 128000,
        //                bufferSize: parseInt($(".media-bitrates").val()),
        sampleRate: parseInt($(".media-framerates").val()),
        //                videoBitsPerSecond: parseInt($(".media-bitrates").val()),
        bitsPerSecond: parseInt($(".media-bitrates").val()),
        // bitsPerSecond: 128000 // if this line is provided, skip above two
    };
    varStream = stream;
    recordRTC = RecordRTC(varStream, options);
    audio.srcObject = varStream;
    varStream.stop = function () {
        this.getAudioTracks().forEach(function (track) {
            track.stop();
        });
    };
}

从我从编码中看到的内容,我只能在停止录制时获得大小,因为录制过程中没有斑点。

我找到了自己的答案。无论如何,穆阿兹·汗(Muaz Khan(在他的库存中回答了这个问题。好吧,这不是问题,所以我不在那儿看。无论如何,如果有人寻找答案可能会有所帮助。

(function looper() {
if (!recorder) {
    return;
}
var internal = recorder.getInternalRecorder();
if (internal && internal.getArrayOfBlobs) {
    var blob = new Blob(internal.getArrayOfBlobs(), {
        type: 'video/webm'
    });
    // -------------------------------------------------------------
    if (blob.size > 100 * 1000) { // if blob is greater than 100 MB
        recorder.stopRecording(callback); // stop recording here
        return;
    }
    // -------------------------------------------------------------
    document.querySelector('h1').innerHTML = 'Recording length: ' + bytesToSize(blob.size);
}
setTimeout(looper, 1000);
})();

您可以在下面的链接上找到答案:

https://github.com/muaz-khan/recordrtc/issues/301

好吧,这个网站也可以下降..;(

无论如何,让我们不要。让我提供完整的代码。解释不是我最好的部分。工作示例是最好的解释。

录制之前, MediaStreamRecorder 应为录音机类型。 TimesLice 应通过参数。不太确定这是怎么回事。但是我想,此参数为库提供了一个信息,该斑点应每1000毫秒切片。每秒钟。

    recorder = RecordRTC(camera, {
        recorderType: MediaStreamRecorder,
        mimeType: 'video/webm',
        timeSlice: 1000 // pass this parameter
    });

然后将此代码放在之后。此循环功能每1000毫秒一次运行一次。并检查当前的斑点大小。您可以检查大小,显示用户或停止记录的大小。您应该检查服务器上的文件大小。您不能依靠客户端脚本。

        (function looper() {
        if(!recorder) {
            return;
        }
        var internal = recorder.getInternalRecorder();
        if(internal && internal.getArrayOfBlobs) {
            var blob = new Blob(internal.getArrayOfBlobs(), {
                type: 'video/webm'
            });
            document.querySelector('h1').innerHTML = 'Recording length: ' + bytesToSize(blob.size);
        }
        setTimeout(looper, 1000);
    })();

和最后一部分。

recorder.startRecording();

最新更新