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:
braveyao@webrtc.org 2013-03-20 00:23:55 +00:00
parent ebf49da9b2
commit f354e1f587
2 changed files with 30 additions and 20 deletions

View File

@ -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,

View File

@ -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) + "\"");