首页 > 其他 > 详细

前端-点击stop()后删除录制图标

时间:2020-08-27 12:24:21      阅读:65      评论:0      收藏:0      [点我收藏+]

我正在使用MediaStreamRecorder.js库进行Java音频捕获。我发现的唯一问题是,当我单击“停止”以停止录制时,该选项卡上的红色录制图标仍在那里。

解决:

navigator.getUserMedia(mediaConstraints, function(stream) {
    window.streamReference = stream;
    onMediaSuccess(stream);
}, onMediaError);

function stopStream() {
    if (!window.streamReference) return;

    window.streamReference.getAudioTracks().forEach(function(track) {
        track.stop();
    });

    window.streamReference.getVideoTracks().forEach(function(track) {
        track.stop();
    });

    window.streamReference = null;
}

完整代码:

 <div id="result"></div> 
<button class="play">Start</button>
<button class="stop">Stop</button>
<button class="resume">Resume</button>
<button class="salvar">Salvar</button>
  
 <div class="contador"></div>
var mediaConstraints = {
    audio: true
};

var mediaRecorder;
var blobURL;

function onMediaSuccess(stream) {
    window.streamReference = stream;
    $(function() {


        mediaRecorder = new MediaStreamRecorder(stream);
        mediaRecorder.mimeType = ‘audio/wav‘;
        mediaRecorder.audioChannels = 1;
        mediaRecorder.ondataavailable = function(blob) {
            // POST/PUT "Blob" using FormData/XHR2
            blobURL = URL.createObjectURL(blob);
            $("#result").append(‘<audio controls src="‘ + blobURL + ‘"></audio><br><a href="‘ + blobURL + ‘" target="_blank">‘ + blobURL + ‘</a>‘);
        };
        mediaRecorder.start(5000 * 5000);
        setTimeout(function() {
            mediaRecorder.stop();
        }, 120 * 1000); //Se n?o clicar em parar, a grava??o para automaticamente em 2 minutos.

    });
}

function onMediaError(e) {
    console.error(‘media error‘, e);
}

function onStop() {
    mediaRecorder.stop();
    mediaRecorder.stream.stop();
}

var interval;

function contadorIncremento() {
    var count = 1;
    interval = setInterval(function() {
        if (count > 1)
            $(‘.contador‘).html("setInterval: Ja passou " + count++ + " segundos!");
        else
            $(‘.contador‘).html("setInterval: Ja passou " + count++ + " segundo!");
    }, 1000);
}

function stopContadorIncremento() {
    clearTimeout(interval);
    $(‘.contador‘).html("");
}

$(function() {

    $(".play").on("click", function() {
        navigator.getUserMedia(mediaConstraints, onMediaSuccess, onMediaError);
        contadorIncremento();

    });

    $(".stop").on("click", function() {
        mediaRecorder.stop();
        stopContadorIncremento();

        if (window.streamReference) {
            window.streamReference.getAudioTracks().forEach(function(track) {
                track.stop();
            });

            window.streamReference.getVideoTracks().forEach(function(track) {
                track.stop();
            });

            window.streamReference = null;
        }
    });

    $(".resume").on("click", function() {
        mediaRecorder.resume();
    });

    $(".salvar").on("click", function() {
        mediaRecorder.save();
    });



});

前端-点击stop()后删除录制图标

原文:https://www.cnblogs.com/xym4869/p/13570481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!