muaz-khan / RecordRTC

RecordRTC is WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows.
https://www.webrtc-experiment.com/RecordRTC/
MIT License
6.45k stars 1.75k forks source link

no sound when using WebAssemblyRecorder #876

Open xiaoyao96 opened 1 month ago

xiaoyao96 commented 1 month ago

No sound when using WebAssemblyRecorder. How to make it sound ?

The demo is as follows:

<title>WebAssembly Recorder using RecordRTC</title>
<style type="text/css">
body {
  text-align: center;
}

video {
  border-radius: 5px;
  border: 1px solid black;
}
</style>

<h1>WebAssembly Recorder using RecordRTC <span id="version"></span></h1>
<button id="start">Start Recording</button>
<button id="stop" disabled>Stop Recording</button>
<br><br>
<video id="video" controls autoplay playsinline></video>

<!-- web streams API polyfill to support Firefox -->
<script src="https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"></script>

<script src="https://www.WebRTC-Experiment.com/RecordRTC.js"></script>

<script>
document.getElementById('version').innerHTML = RecordRTC.version;

var recorder;

document.getElementById('start').onclick = function() {
    this.disabled = true;
    document.getElementById('video').muted = true
    navigator.mediaDevices.getUserMedia({
        video: {
            width: {
                ideal: 640
            },
            height: {
                ideal: 480
            }
        },
        audio: true
    }).then(function(stream) {
        document.getElementById('video').srcObject = stream;

        recorder = RecordRTC(stream, {
            recorderType: WebAssemblyRecorder,
            // workerPath: '../libs/webm-worker.js',
            // webAssemblyPath: '../libs/webm-wasm.wasm',
            width: 640,
            height: 480,
            frameRate: 30
        });
        recorder.startRecording();

        document.getElementById('stop').disabled = false;
    });
};

document.getElementById('stop').onclick = function() {
    document.getElementById('video').srcObject = null;

    this.disabled = true;
    recorder.stopRecording(function(blob) {
        document.getElementById('video').muted = false
        document.getElementById('video').src = blob;
        document.getElementById('start').disabled = false;
    });
}
</script>

<footer style="margin-top: 20px;"><small id="send-message"></small></footer>
<script src="https://www.webrtc-experiment.com/common.js"></script>