|
622 | 622 | } |
623 | 623 | async function handleStop(event) { |
624 | 624 | log('Recorder stopped: ', event); |
625 | | - |
| 625 | + await self.app.audio.ctx.close(); |
| 626 | + |
| 627 | + for(var x = 0; x < self.app.audio.recordTracks.length;x++) { |
| 628 | + console.log("removing tracks"); |
| 629 | + stream.removeTrack(self.app.audio.recordTracks[x]); |
| 630 | + } |
| 631 | + |
626 | 632 | if(self.app.video.mode == "none") { |
627 | 633 | const superBuffer = new Blob(recordedBlobs, {type: 'audio/webm'}); |
628 | 634 | var url = (window.URL || window.webkitURL).createObjectURL(superBuffer); |
|
638 | 644 | } else { |
639 | 645 | const superBuffer = new Blob(recordedBlobs, {type: 'video/webm'}); |
640 | 646 | playscreen.el.src = window.URL.createObjectURL(superBuffer); |
| 647 | + self.app.events.off("hitTrack",self.app.events.hitTrack); |
641 | 648 | } |
642 | 649 |
|
643 | 650 | } |
|
657 | 664 | recordHolder.el.style.display = ""; |
658 | 665 | recordedBlobs = []; |
659 | 666 |
|
660 | | - |
| 667 | + |
661 | 668 | var audioCtx = new AudioContext(); |
| 669 | + self.app.audio.ctx = audioCtx; |
| 670 | + self.app.audio.recordTracks = []; |
| 671 | + |
662 | 672 | var audioMixer = audioCtx.createMediaStreamDestination(); |
663 | 673 |
|
664 | 674 | if( self.app.audio.mode == "mic" ) { |
|
697 | 707 |
|
698 | 708 | // mixing audio and video |
699 | 709 | if( ( self.app.audio.mode == "mic" || self.app.hasAudioTracks() ) && self.app.video.mode != "none") { |
| 710 | + console.log("MIXED IN AUDIO AND VIDEO"); |
700 | 711 | audioMixer.stream |
701 | 712 | .getAudioTracks() |
702 | | - .forEach((audioTrack) => stream.addTrack(audioTrack)); |
| 713 | + .forEach((audioTrack) => { |
| 714 | + self.app.audio.recordTracks.push(audioTrack); |
| 715 | + console.log(audioTrack); |
| 716 | + stream.addTrack(audioTrack); |
| 717 | + }); |
703 | 718 | } |
704 | 719 |
|
705 | 720 | if(self.app.video.mode != "none") { |
|
0 commit comments