Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
diff --git a/app/assets/javascripts/backbone/models/recorder.js.coffee b/app/assets/javascripts/backbone/models/recorder.js.coffee index caaeb71..2b31b7e 100644 --- a/app/assets/javascripts/backbone/models/recorder.js.coffee +++ b/app/assets/javascripts/backbone/models/recorder.js.coffee @@ -10,33 +10,19 @@ Seirenes.module "Models", (Models, App, Backbone, Marionette, $, _) -> throw new Error("no video") unless @video addRecordTrack: -> - navigator.getUserMedia({audio: true}, _.bind(@captureSuccess, @), _.bind(@__assignRecordTrack, @)) + navigator.getUserMedia({audio: true}, _.bind(@__assignRecordTrack, @), _.bind(@captureFail, @)) __assignRecordTrack: (s) -> @micStream = s @mic = @context.createMediaStreamSource(s) record: -> - navigator.getUserMedia({audio: true}, _.bind(@captureSuccess, @), _.bind(@captureFail, @)) - - captureSuccess: (s) -> - @context = new webkitAudioContext() - # ビデオとマイクのミキサー @mixer = @context.createGain() - # ビデオのゲイン - @musicGain = @context.createGain() - # マイクのゲイン @MicGain = @context.createGain() - @elementMediaSource = @context.createMediaElementSource(@video) - @elementMediaSource.connect(@musicGain) - - @micStream = s - @mediaStreamSource = @context.createMediaStreamSource(s) - splitter = @context.createChannelSplitter() # ノイズ除去のため低音域をカット @@ -58,7 +44,7 @@ Seirenes.module "Models", (Models, App, Backbone, Marionette, $, _) -> deesser.Q.value = 5 deesser.gain.value = -3 - @mediaStreamSource.connect(splitter) + @mic.connect(splitter) splitter.connect(highpassFilter, 0) highpassFilter.connect(peaking) peaking.connect(deesser) @@ -74,16 +60,15 @@ Seirenes.module "Models", (Models, App, Backbone, Marionette, $, _) -> musicDelay = @context.createDelay() musicDelay.delayTime.value = @musicDelayTime - @elementMediaSource.connect(musicDelay) - musicDelay.connect(@musicGain) + @music.connect(musicDelay) - @musicGain.connect(@mixer) + musicDelay.connect(@mixer) - elementMediaAnalyser = @context.createAnalyser() - elementMediaAnalyser.fftSize = 1024 - elementMediaAnalyser.maxDecibels = -40 - @elementMediaSource.connect(elementMediaAnalyser) - @elementMediaSource.connect(@context.destination) + musicAnalyser = @context.createAnalyser() + musicAnalyser.fftSize = 1024 + musicAnalyser.maxDecibels = -40 + @music.connect(musicAnalyser) + @music.connect(@context.destination) # 高音域を軽くブーストする trebleBoost = @context.createBiquadFilter() @@ -129,7 +114,7 @@ Seirenes.module "Models", (Models, App, Backbone, Marionette, $, _) -> @Timer = setInterval -> musicData = new Uint8Array(512) micData = new Uint8Array(512) - elementMediaAnalyser.getByteTimeDomainData(musicData) + musicAnalyser.getByteTimeDomainData(musicData) micAnalyser.getByteTimeDomainData(micData) musicSignal = musicData[0] micSignal = micData[0] diff --git a/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc b/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc index 732f96f..52d357a 100644 --- a/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc +++ b/app/assets/javascripts/backbone/templates/preview_video_player.jst.hamlc @@ -3,6 +3,7 @@ #mic-volume-control Mic Volume %webaudio-slider.slider{id: "mic-volume", src: "/webaudio-controls/img/hsliderbody.png", knobsrc: "/webaudio-controls/img/hsliderknob.png", min: -6, max: 6, step: 0.1, direction: "horz"} + %button.js-add_rec Add Record Track %button.js-start_rec Start Rec %button.js-stop_rec Stop Rec #recorded diff --git a/app/assets/javascripts/backbone/views/preview_video_player.js.coffee b/app/assets/javascripts/backbone/views/preview_video_player.js.coffee index 6569c4f..11cd7be 100644 --- a/app/assets/javascripts/backbone/views/preview_video_player.js.coffee +++ b/app/assets/javascripts/backbone/views/preview_video_player.js.coffee @@ -3,6 +3,7 @@ Seirenes.module "Views", (Views, App, Backbone, Marionette, $, _) -> template: "backbone/templates/preview_video_player" events: + "click .js-add_rec": "addRecordTrack" "click .js-start_rec": "startRecord" "click .js-stop_rec": "stopRecord" "click .js-upload" : "uploadRecordedData" @@ -38,8 +39,11 @@ Seirenes.module "Views", (Views, App, Backbone, Marionette, $, _) -> onRender: -> @StickIT() - startRecord: -> + addRecordTrack: -> @recorder = new App.Models.Recorder(video: @$("video")[0]) + @recorder.addRecordTrack() + + startRecord: -> @recorder.record() stopRecord: ->
- Loading branch information