Skip to content

Commit 3efae4c

Browse files
committed
clear stage
1 parent 2345db9 commit 3efae4c

File tree

1 file changed

+53
-28
lines changed

1 file changed

+53
-28
lines changed

public/app.html

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<div id="lblSettings" style="cursor:pointer;">🔧 Input Settings</div>
3535
<div id="settingsPanel" style="padding-left:20px;">
3636
<div>
37-
<div>Audio</div>
37+
<div>🔊 Audio</div>
3838
<div style="padding-left:20px;">
3939
<div>
4040
none
@@ -53,7 +53,7 @@
5353
</div>
5454
</div>
5555
<div>
56-
<div>Video</div>
56+
<div>📺 Video</div>
5757
<div style="padding-left:20px;">
5858
<div>
5959
none
@@ -78,18 +78,30 @@
7878
</div>
7979

8080
<div>🎬 Stage</div>
81-
<div>
82-
<button id="btnRecord">Start Recording</button>
81+
<div style="display:flex;">
82+
<button id="btnRecord">start recording</button>
8383
<button id="btnPlay">play</button>
84+
<button id="btnClearStage">clear</button>
85+
<div style="flex:1;"></div>
8486
<button id="btnDownloadMovie">download movie</button>
87+
<div style="flex:1;"></div>
8588
<button id="btnNext">change canvas</button>
8689
</div>
8790

8891
<div style="padding-left:20px;">
89-
<div>🛵 Tracks</div>
90-
<div style="display:flex;flex-wrap: wrap;">
91-
<Component id="tracksView"></Component>
92+
<div id="lblTracks" style="display:none;">
93+
<div>🛵 Tracks</div>
94+
<div style="display:flex;flex-wrap: wrap;">
95+
<Component id="tracksView"></Component>
96+
</div>
9297
</div>
98+
<script>
99+
/*
100+
Camera Hit Tracks
101+
Movie Hit Tracks
102+
Canvas Hit Tracks
103+
*/
104+
</script>
93105
</div>
94106
<div style="display:flex;padding-top:10px;padding-bottom:10px;">
95107
<div id="chkMic" style="display:none;padding:5px;background-color:gainsboro;border-radius:20px;padding-left:15px;padding-right:15px;margin-right:10px;">🔴 Mic</div>
@@ -153,6 +165,11 @@
153165
hasVideoTracks : function () { for(var x = 0; x < this.tracks.length;x++) if(this.tracks[x].type == "video") return true; return false; }
154166
};
155167

168+
btnClearStage.el.addEventListener("click",()=>{
169+
self.app.tracks.splice(0,self.app.tracks.length);
170+
self.app.events.emit("updateTracks");
171+
});
172+
156173
lblSettings.el.addEventListener("click",()=>{
157174
if(self.app.panel.settings.visible) {
158175
settingsPanel.el.style.display = "none";
@@ -352,7 +369,7 @@
352369
fileAudio.el.value = "";
353370
self.app.tracks.push(track);
354371
console.log(track);
355-
self.app.events.emit("addTrack");
372+
self.app.events.emit("updateTracks");
356373
}
357374
reader.readAsArrayBuffer(file);
358375
}
@@ -509,11 +526,11 @@
509526

510527

511528
function toggleRecording() {
512-
if (btnRecord.el.textContent === 'Start Recording') {
529+
if (btnRecord.el.textContent === 'start recording') {
513530
startRecording();
514531
} else {
515532
stopRecording();
516-
btnRecord.el.textContent = 'Start Recording';
533+
btnRecord.el.textContent = 'start recording';
517534
btnPlay.el.disabled = false;
518535
btnDownloadMovie.el.disabled = false;
519536
}
@@ -546,6 +563,9 @@
546563

547564
self.app.audio.control = schema.el.audio;
548565

566+
self.app.events.off("hitTrack",self.app.events.hitTrack);
567+
delete self.app.events.hitTrack;
568+
549569
} else {
550570
const superBuffer = new Blob(recordedBlobs, {type: 'video/webm'});
551571
playscreen.el.src = window.URL.createObjectURL(superBuffer);
@@ -579,10 +599,7 @@
579599
}
580600

581601
if(self.app.hasAudioTracks()) {
582-
583-
584-
//playback.start();
585-
self.app.events.on("hitTrack",(n)=>{
602+
self.app.events.hitTrack = (n)=>{
586603
if(n < self.app.tracks.length && self.app.tracks[n].type == "audio") {
587604
var playback = audioCtx.createBufferSource();
588605
var playbackGain = audioCtx.createGain();
@@ -594,7 +611,9 @@
594611
playback.start();
595612
}
596613
console.log("hit",self.app.tracks[n]);
597-
});
614+
};
615+
//playback.start();
616+
self.app.events.on("hitTrack",self.app.events.hitTrack);
598617

599618
}
600619

@@ -647,7 +666,7 @@
647666
}
648667

649668
log('Created MediaRecorder', mediaRecorder, 'with options', options);
650-
btnRecord.el.textContent = 'Stop Recording';
669+
btnRecord.el.textContent = 'stop recording';
651670
btnPlay.el.disabled = true;
652671
btnDownloadMovie.el.disabled = true;
653672
mediaRecorder.onstop = handleStop;
@@ -744,26 +763,32 @@
744763
.send();
745764
});
746765

747-
self.app.events.on("addTrack",()=>{
766+
767+
self.app.events.on("updateTracks",()=>{
748768
// do not remove duplicate tracks cause it may be same track name for different folders
749769
tracksView.$.elementsClear();
750770
async function addTrack(n,track) {
751-
var schema = await tracksView.$.elementPushPacketAsync(`
752-
<div style="display:flex;">
753-
<div style="padding-left:5px;padding-right:5px;">${(""+n).padStart(2,"0")}</div>
754-
<div style="padding-left:5px;padding-right:5px;width:100px;overflow:hidden;white-space: nowrap;">${track.data.name}</div>
755-
<div style="padding-left:5px;padding-right:5px;"><button id="btnHit">hit</button></div>
756-
</div>
757-
`);
758-
schema.el.btnHit.addEventListener("click",()=>{
759-
self.app.events.emit("hitTrack",[n]);
760-
});
771+
if(track.type == "audio") {
772+
var schema = await tracksView.$.elementPushPacketAsync(`
773+
<div style="display:flex;">
774+
<div style="padding-left:5px;padding-right:5px;">🔊 ${(""+n).padStart(2,"0")}</div>
775+
<div style="padding-left:5px;padding-right:5px;width:100px;overflow:hidden;white-space: nowrap;">${track.data.name}</div>
776+
<div style="padding-left:5px;padding-right:5px;"><button id="btnHit">hit</button></div>
777+
</div>
778+
`);
779+
schema.el.btnHit.addEventListener("click",()=>{
780+
self.app.events.emit("hitTrack",[n]);
781+
});
782+
}
761783
}
784+
if(self.app.tracks.length>0) lblTracks.el.style.display = "";
785+
else lblTracks.el.style.display = "none";
762786
for(var x =0; x < self.app.tracks.length;x++) {
763787
addTrack(x,self.app.tracks[x]);
764788
}
765789
});
766790

791+
767792
async function addAsset(item) {
768793
var visible = false;
769794
var itemStruct = {
@@ -840,7 +865,7 @@
840865
events : []
841866
};
842867
self.app.tracks.push(track);
843-
self.app.events.emit("addTrack");
868+
self.app.events.emit("updateTracks");
844869
console.log(track);
845870
} else if(this.spec.type == "video.webm") {
846871
throw new Error("video not implemented");

0 commit comments

Comments
 (0)