working demo, click button for feedback ;)
This commit is contained in:
@@ -3,4 +3,13 @@ define (require) ->
|
|||||||
alert("Can't access your media :(")
|
alert("Can't access your media :(")
|
||||||
return
|
return
|
||||||
|
|
||||||
getUserMedia = require('getUserMedia')
|
$ = require 'jquery'
|
||||||
|
Audio = require 'lib/captureAudio'
|
||||||
|
|
||||||
|
buttonAudio = new Audio()
|
||||||
|
|
||||||
|
$('.button.record').on 'click', (ev) ->
|
||||||
|
audioStream = buttonAudio.get()
|
||||||
|
.then (streamSource) ->
|
||||||
|
# loop the stream back through the computer... feedback, go!
|
||||||
|
streamSource.connect buttonAudio.context.destination
|
||||||
|
|||||||
16
src/coffee/lib/captureAudio.coffee
Normal file
16
src/coffee/lib/captureAudio.coffee
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
define (require) ->
|
||||||
|
MediaCapture = require 'lib/mediaCapture'
|
||||||
|
|
||||||
|
class Audio
|
||||||
|
constructor: (ctx) ->
|
||||||
|
@audioContext = ctx || window.AudioContext || window.webkitAudioContext
|
||||||
|
@context = new @audioContext()
|
||||||
|
|
||||||
|
get: ->
|
||||||
|
audio = new MediaCapture
|
||||||
|
video: false
|
||||||
|
|
||||||
|
audio.get()
|
||||||
|
.then (audioStream) =>
|
||||||
|
@mediaStreamSource = @context.createMediaStreamSource( audioStream )
|
||||||
|
return @mediaStreamSource
|
||||||
13
src/coffee/lib/mediaCapture.coffee
Normal file
13
src/coffee/lib/mediaCapture.coffee
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
define (require) ->
|
||||||
|
Promise = require 'bluebird'
|
||||||
|
require 'lib/getUserMedia' # create navigator.getUserMedia
|
||||||
|
|
||||||
|
class MediaCapture
|
||||||
|
constructor: (opts={}) ->
|
||||||
|
@opts =
|
||||||
|
video: if (opts.video?) then opts.video else true
|
||||||
|
audio: if (opts.audio?) then opts.video else true
|
||||||
|
|
||||||
|
get: ->
|
||||||
|
new Promise (resolve, reject) =>
|
||||||
|
navigator.getUserMedia @opts, resolve, reject
|
||||||
Reference in New Issue
Block a user