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()
|
new_message.put()
|
||||||
logging.info('Saved message for user ' + user)
|
logging.info('Saved message for user ' + user)
|
||||||
|
|
||||||
def make_media_constraints_by_resolution(min_re, max_re):
|
def make_media_constraints(media, min_re, max_re):
|
||||||
constraints = { 'optional': [], 'mandatory': {} }
|
video_constraints = { 'optional': [], 'mandatory': {} }
|
||||||
if min_re:
|
media_constraints = { 'video':video_constraints, 'audio':True }
|
||||||
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);
|
|
||||||
|
|
||||||
if max_re:
|
# Media: audio:audio only; video:video only; (default):both.
|
||||||
max_sizes = max_re.split('x')
|
if media.lower() == 'audio':
|
||||||
if len(max_sizes) == 2:
|
media_constraints['video'] = False
|
||||||
constraints['mandatory']['maxWidth'] = max_sizes[0]
|
elif media.lower() == 'video':
|
||||||
constraints['mandatory']['maxHeight'] = max_sizes[1]
|
media_constraints['audio'] = False
|
||||||
else:
|
|
||||||
logging.info('Ignored invalid max_re: ' + max_re);
|
|
||||||
|
|
||||||
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):
|
def make_pc_constraints(compat):
|
||||||
constraints = { 'optional': [] }
|
constraints = { 'optional': [] }
|
||||||
@ -309,6 +318,7 @@ class MainPage(webapp2.RequestHandler):
|
|||||||
if hd_video.lower() == 'true':
|
if hd_video.lower() == 'true':
|
||||||
min_re = '1280x720'
|
min_re = '1280x720'
|
||||||
ts_pwd = self.request.get('tp')
|
ts_pwd = self.request.get('tp')
|
||||||
|
media = self.request.get('media')
|
||||||
# set compat to true by default.
|
# set compat to true by default.
|
||||||
compat = 'true'
|
compat = 'true'
|
||||||
if self.request.get('compat'):
|
if self.request.get('compat'):
|
||||||
@ -362,13 +372,13 @@ class MainPage(webapp2.RequestHandler):
|
|||||||
logging.info('Room ' + room_key + ' is full')
|
logging.info('Room ' + room_key + ' is full')
|
||||||
return
|
return
|
||||||
|
|
||||||
room_link = base_url + '/?r=' + room_key
|
room_link = base_url + '?r=' + room_key
|
||||||
room_link = append_url_arguments(self.request, room_link)
|
room_link = append_url_arguments(self.request, room_link)
|
||||||
token = create_channel(room, user, token_timeout)
|
token = create_channel(room, user, token_timeout)
|
||||||
pc_config = make_pc_config(stun_server, turn_server, ts_pwd)
|
pc_config = make_pc_config(stun_server, turn_server, ts_pwd)
|
||||||
pc_constraints = make_pc_constraints(compat)
|
pc_constraints = make_pc_constraints(compat)
|
||||||
offer_constraints = make_offer_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,
|
template_values = {'token': token,
|
||||||
'me': user,
|
'me': user,
|
||||||
'room_key': room_key,
|
'room_key': room_key,
|
||||||
|
@ -160,7 +160,7 @@
|
|||||||
// Call into getUserMedia via the polyfill (adapter.js).
|
// Call into getUserMedia via the polyfill (adapter.js).
|
||||||
var constraints = {{ media_constraints|safe }};
|
var constraints = {{ media_constraints|safe }};
|
||||||
try {
|
try {
|
||||||
getUserMedia({'audio':true, 'video':constraints}, onUserMediaSuccess,
|
getUserMedia(constraints, onUserMediaSuccess,
|
||||||
onUserMediaError);
|
onUserMediaError);
|
||||||
console.log("Requested access to local media with mediaConstraints:\n" +
|
console.log("Requested access to local media with mediaConstraints:\n" +
|
||||||
" \"" + JSON.stringify(constraints) + "\"");
|
" \"" + JSON.stringify(constraints) + "\"");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user