Skip to content
Snippets Groups Projects
Commit 341896b6 authored by Rodrigo Nascimento's avatar Rodrigo Nascimento
Browse files

Improve WebRTC audio quality

parent 3d997eab
No related branches found
No related tags found
No related merge requests found
...@@ -324,9 +324,30 @@ class WebRTCClass ...@@ -324,9 +324,30 @@ class WebRTCClass
return peerConnection return peerConnection
_getUserMedia: (media, onSuccess, onError) ->
onSuccessLocal = (stream) ->
if AudioContext? and stream.getAudioTracks().length > 0
audioContext = new AudioContext
source = audioContext.createMediaStreamSource(stream)
volume = audioContext.createGain()
source.connect(volume)
peer = audioContext.createMediaStreamDestination()
volume.connect(peer)
volume.gain.value = 0.6
stream.removeTrack(stream.getAudioTracks()[0])
stream.addTrack(peer.stream.getAudioTracks()[0])
stream.volume = volume
onSuccess(stream)
navigator.getUserMedia media, onSuccessLocal, onError
getUserMedia: (media, onSuccess, onError=@onError) -> getUserMedia: (media, onSuccess, onError=@onError) ->
if media.desktop isnt true if media.desktop isnt true
navigator.getUserMedia media, onSuccess, onError @_getUserMedia media, onSuccess, onError
return return
if @screenShareAvailable isnt true if @screenShareAvailable isnt true
...@@ -371,7 +392,7 @@ class WebRTCClass ...@@ -371,7 +392,7 @@ class WebRTCClass
video: video:
mozMediaSource: 'window' mozMediaSource: 'window'
mediaSource: 'window' mediaSource: 'window'
navigator.getUserMedia media, getScreenSuccess, onError @_getUserMedia media, getScreenSuccess, onError
else else
ChromeScreenShare.getSourceId (id) => ChromeScreenShare.getSourceId (id) =>
console.log id console.log id
...@@ -384,7 +405,7 @@ class WebRTCClass ...@@ -384,7 +405,7 @@ class WebRTCClass
maxWidth: 1280 maxWidth: 1280
maxHeight: 720 maxHeight: 720
navigator.getUserMedia media, getScreenSuccess, onError @_getUserMedia media, getScreenSuccess, onError
if @navigator is 'firefox' or not media.audio? or media.audio is false if @navigator is 'firefox' or not media.audio? or media.audio is false
getScreen() getScreen()
...@@ -395,7 +416,7 @@ class WebRTCClass ...@@ -395,7 +416,7 @@ class WebRTCClass
getAudioError = => getAudioError = =>
getScreen() getScreen()
navigator.getUserMedia {audio: media.audio}, getAudioSuccess, getAudioError @_getUserMedia {audio: media.audio}, getAudioSuccess, getAudioError
### ###
......
...@@ -2,4 +2,5 @@ window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnecti ...@@ -2,4 +2,5 @@ window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnecti
window.RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription || window.webkitRTCSessionDescription; window.RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription || window.webkitRTCSessionDescription;
window.RTCIceCandidate = window.RTCIceCandidate || window.mozRTCIceCandidate || window.webkitRTCIceCandidate; window.RTCIceCandidate = window.RTCIceCandidate || window.mozRTCIceCandidate || window.webkitRTCIceCandidate;
window.RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription || window.webkitRTCSessionDescription; window.RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription || window.webkitRTCSessionDescription;
navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia; window.AudioContext = window.AudioContext || window.mozAudioContext || window.webkitAudioContext;
\ No newline at end of file navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment