From 624ca771738dd662df800edf8fbb6a7a8a38ddae Mon Sep 17 00:00:00 2001 From: Kevin Sawicki & Matt Colyer Date: Fri, 26 Jul 2013 17:24:37 -0700 Subject: [PATCH] Wrap webkitGetUserMedia in nextTick for reliability --- .../collaboration/lib/media-connection.coffee | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/packages/collaboration/lib/media-connection.coffee b/src/packages/collaboration/lib/media-connection.coffee index 95bef15a0..44cedd3c3 100644 --- a/src/packages/collaboration/lib/media-connection.coffee +++ b/src/packages/collaboration/lib/media-connection.coffee @@ -21,14 +21,17 @@ class MediaConnection createOutboundStreamPromise: -> deferred = $.Deferred() - video = config.get('collaboration.video') ? mandatory: { maxWidth: 320, maxHeight: 240 }, optional: [] - audio = config.get('collaboration.audio') ? true - success = (stream) => - @getPeerConnection().addStream(stream) - deferred.resolve(stream) - error = (args...) -> - deferred.reject(args...) - navigator.webkitGetUserMedia({video, audio}, success, error) + + _.nextTick => + video = config.get('collaboration.video') ? mandatory: { maxWidth: 320, maxHeight: 240 }, optional: [] + audio = config.get('collaboration.audio') ? true + success = (stream) => + @getPeerConnection().addStream(stream) + deferred.resolve(stream) + error = (args...) -> + deferred.reject(args...) + navigator.webkitGetUserMedia({video, audio}, success, error) + deferred.promise() sendOffer: ->