Check it out this code its working for me///Audio merge and paly
<audio id="playaudio" controls></audio>
<audio id="back">
</audio>
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery-ui-1.8.17.custom.min.js"></script>
<input onclick="startRecording()" type="button" value="start recording" />
<input onclick="stopRecording()" type="button" value="stop recording and play" />
<script>
var onFail = function (e) {
console.log('Rejected!', e);
};
var onSuccess = function (s) {
stream = s;
}
window.URL = window.URL || window.webkitURL;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
var stream;
var audio = document.getElementById("playaudio");
function startRecording() {
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: true }, onSuccess, onFail);
} else {
console.log('navigator.getUserMedia not present');
}
}
function stopRecording() {
var streamRecorder;
var context = new webkitAudioContext();
var analyser = context.createAnalyser();
var microphone = context.createMediaStreamSource(stream);
var bgAudio = document.getElementById("back");
var backgroundMusic = context.createMediaElementSource(bgAudio);
bgAudio.volume = 0.03;
$("#back").get(0).play();
var analyser = context.createAnalyser();
var mixedOutput = context.createMediaStreamDestination();
microphone.connect(analyser);
analyser.connect(mixedOutput);
backgroundMusic.connect(mixedOutput);
// requestAnimationFrame(drawAnimation);
// streamRecorder = mixedOutput.stream.record();
audio.src = window.URL.createObjectURL(mixedOutput.stream);
alert(audio.src);
}
</script>