@@ -17,13 +17,13 @@ let mediaRecorder;
1717let recordedBlobs ;
1818
1919const codecPreferences = document . querySelector ( '#codecPreferences' ) ;
20-
2120const errorMsgElement = document . querySelector ( 'span#errorMsg' ) ;
2221const recordedVideo = document . querySelector ( 'video#recorded' ) ;
2322const recordButton = document . querySelector ( 'button#record' ) ;
2423recordButton . addEventListener ( 'click' , ( ) => {
2524 if ( recordButton . textContent === 'Start Recording' ) {
2625 startRecording ( ) ;
26+ uploadButton . disabled = true ;
2727 } else {
2828 stopRecording ( ) ;
2929 recordButton . textContent = 'Start Recording' ;
@@ -33,15 +33,24 @@ recordButton.addEventListener('click', () => {
3333 }
3434} ) ;
3535
36- const playButton = document . querySelector ( 'button#play' ) ;
37- playButton . addEventListener ( 'click' , ( ) => {
38- const mimeType = codecPreferences . options [ codecPreferences . selectedIndex ] . value . split ( ';' , 1 ) [ 0 ] ;
39- const superBuffer = new Blob ( recordedBlobs , { type : mimeType } ) ;
36+ function doPlay ( blob ) {
4037 recordedVideo . src = null ;
4138 recordedVideo . srcObject = null ;
42- recordedVideo . src = window . URL . createObjectURL ( superBuffer ) ;
39+ recordedVideo . src = window . URL . createObjectURL ( blob ) ;
4340 recordedVideo . controls = true ;
4441 recordedVideo . play ( ) ;
42+ } ;
43+
44+ const playButton = document . querySelector ( 'button#play' ) ;
45+ playButton . addEventListener ( 'click' , ( ) => {
46+ const mimeType = codecPreferences . options [ codecPreferences . selectedIndex ] . value . split ( ';' , 1 ) [ 0 ] ;
47+ const superBuffer = new Blob ( recordedBlobs , { type : mimeType } ) ;
48+ doPlay ( superBuffer ) ;
49+ } ) ;
50+
51+ const uploadButton = document . querySelector ( '#upload' ) ;
52+ uploadButton . addEventListener ( 'change' , e => {
53+ doPlay ( e . target . files [ 0 ] ) ;
4554} ) ;
4655
4756const downloadButton = document . querySelector ( 'button#download' ) ;
0 commit comments