Add audio/video only option in apprtc
ISSUE = issue 1507 TEST = Review URL: https://webrtc-codereview.appspot.com/1216007 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3692 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
ebf49da9b2
commit
f354e1f587
@ -119,25 +119,34 @@ def on_message(room, user, message):
|
||||
new_message.put()
|
||||
logging.info('Saved message for user ' + user)
|
||||
|
||||
def make_media_constraints_by_resolution(min_re, max_re):
|
||||
constraints = { 'optional': [], 'mandatory': {} }
|
||||
if min_re:
|
||||
min_sizes = min_re.split('x')
|
||||
if len(min_sizes) == 2:
|
||||
constraints['mandatory']['minWidth'] = min_sizes[0]
|
||||
constraints['mandatory']['minHeight'] = min_sizes[1]
|
||||
else:
|
||||
logging.info('Ignored invalid min_re: ' + min_re);
|
||||
def make_media_constraints(media, min_re, max_re):
|
||||
video_constraints = { 'optional': [], 'mandatory': {} }
|
||||
media_constraints = { 'video':video_constraints, 'audio':True }
|
||||
|
||||
if max_re:
|
||||
max_sizes = max_re.split('x')
|
||||
if len(max_sizes) == 2:
|
||||
constraints['mandatory']['maxWidth'] = max_sizes[0]
|
||||
constraints['mandatory']['maxHeight'] = max_sizes[1]
|
||||
else:
|
||||
logging.info('Ignored invalid max_re: ' + max_re);
|
||||
# Media: audio:audio only; video:video only; (default):both.
|
||||
if media.lower() == 'audio':
|
||||
media_constraints['video'] = False
|
||||
elif media.lower() == 'video':
|
||||
media_constraints['audio'] = False
|
||||
|
||||
return constraints
|
||||
if media.lower() != 'audio' :
|
||||
if min_re:
|
||||
min_sizes = min_re.split('x')
|
||||
if len(min_sizes) == 2:
|
||||
video_constraints['mandatory']['minWidth'] = min_sizes[0]
|
||||
video_constraints['mandatory']['minHeight'] = min_sizes[1]
|
||||
else:
|
||||
logging.info('Ignored invalid min_re: ' + min_re);
|
||||
if max_re:
|
||||
max_sizes = max_re.split('x')
|
||||
if len(max_sizes) == 2:
|
||||
video_constraints['mandatory']['maxWidth'] = max_sizes[0]
|
||||
video_constraints['mandatory']['maxHeight'] = max_sizes[1]
|
||||
else:
|
||||
logging.info('Ignored invalid max_re: ' + max_re);
|
||||
media_constraints['video'] = video_constraints
|
||||
|
||||
return media_constraints
|
||||
|
||||
def make_pc_constraints(compat):
|
||||
constraints = { 'optional': [] }
|
||||
@ -309,6 +318,7 @@ class MainPage(webapp2.RequestHandler):
|
||||
if hd_video.lower() == 'true':
|
||||
min_re = '1280x720'
|
||||
ts_pwd = self.request.get('tp')
|
||||
media = self.request.get('media')
|
||||
# set compat to true by default.
|
||||
compat = 'true'
|
||||
if self.request.get('compat'):
|
||||
@ -362,13 +372,13 @@ class MainPage(webapp2.RequestHandler):
|
||||
logging.info('Room ' + room_key + ' is full')
|
||||
return
|
||||
|
||||
room_link = base_url + '/?r=' + room_key
|
||||
room_link = base_url + '?r=' + room_key
|
||||
room_link = append_url_arguments(self.request, room_link)
|
||||
token = create_channel(room, user, token_timeout)
|
||||
pc_config = make_pc_config(stun_server, turn_server, ts_pwd)
|
||||
pc_constraints = make_pc_constraints(compat)
|
||||
offer_constraints = make_offer_constraints(compat)
|
||||
media_constraints = make_media_constraints_by_resolution(min_re, max_re)
|
||||
media_constraints = make_media_constraints(media, min_re, max_re)
|
||||
template_values = {'token': token,
|
||||
'me': user,
|
||||
'room_key': room_key,
|
||||
|
@ -160,7 +160,7 @@
|
||||
// Call into getUserMedia via the polyfill (adapter.js).
|
||||
var constraints = {{ media_constraints|safe }};
|
||||
try {
|
||||
getUserMedia({'audio':true, 'video':constraints}, onUserMediaSuccess,
|
||||
getUserMedia(constraints, onUserMediaSuccess,
|
||||
onUserMediaError);
|
||||
console.log("Requested access to local media with mediaConstraints:\n" +
|
||||
" \"" + JSON.stringify(constraints) + "\"");
|
||||
|
Loading…
x
Reference in New Issue
Block a user