From 57c23d93c1231c63b5bd064f21e9dc06e074bcc6 Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 23 Mar 2020 13:36:17 +0800 Subject: [PATCH] Refactor url for rtc player --- trunk/research/players/js/srs.page.js | 5 +++-- trunk/research/players/js/winlin.utility.js | 20 +++++++++++++++++--- trunk/research/players/rtc_player.html | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/trunk/research/players/js/srs.page.js b/trunk/research/players/js/srs.page.js index 5e5d6c956..56ff81e45 100755 --- a/trunk/research/players/js/srs.page.js +++ b/trunk/research/players/js/srs.page.js @@ -58,7 +58,7 @@ function user_extra_params(query, params) { || key === 'filename' || key === 'host' || key === 'hostname' || key === 'http_port' || key === 'pathname' || key === 'port' || key === 'server' || key === 'stream' || key === 'buffer' - || key === 'schema' || key === 'vhost' + || key === 'schema' || key === 'vhost' || key === 'api' ) { continue; } @@ -211,6 +211,7 @@ function build_default_rtc_url(query) { var vhost = (!query.vhost)? window.location.hostname:query.vhost; var app = (!query.app)? "live":query.app; var stream = (!query.stream)? "livestream":query.stream; + var api = query.api? ':'+query.api : ''; // Note that ossrs.net provides only web service, // that is migrating to r.ossrs.net @@ -227,7 +228,7 @@ function build_default_rtc_url(query) { } queries = user_extra_params(query, queries); - var uri = "webrtc://" + server + "/" + app + "/" + stream + "?" + queries.join('&'); + var uri = "webrtc://" + server + api + "/" + app + "/" + stream + "?" + queries.join('&'); while (uri.lastIndexOf("?") == uri.length - 1) { uri = uri.substr(0, uri.length - 1); } diff --git a/trunk/research/players/js/winlin.utility.js b/trunk/research/players/js/winlin.utility.js index 18fcdd60c..1a2307a38 100644 --- a/trunk/research/players/js/winlin.utility.js +++ b/trunk/research/players/js/winlin.utility.js @@ -5,7 +5,7 @@ * depends: jquery1.10 * https://gitee.com/winlinvip/codes/rpn0c2ewbomj81augzk4y59 * @see: http://blog.csdn.net/win_lin/article/details/17994347 - * v 1.0.19 + * v 1.0.20 */ /** @@ -293,7 +293,9 @@ function __fill_query(query_string, obj) { function parse_rtmp_url(rtmp_url) { // @see: http://stackoverflow.com/questions/10469575/how-to-use-location-object-to-parse-url-without-redirecting-the-page-in-javascri var a = document.createElement("a"); - a.href = rtmp_url.replace("rtmp://", "http://").replace("webrtc://", "http://"); + a.href = rtmp_url.replace("rtmp://", "http://") + .replace("webrtc://", "http://") + .replace("rtc://", "http://"); var vhost = a.hostname; var app = a.pathname.substr(1, a.pathname.lastIndexOf("/") - 1); @@ -327,7 +329,19 @@ function parse_rtmp_url(rtmp_url) { if (rtmp_url.indexOf("://") > 0) { schema = rtmp_url.substr(0, rtmp_url.indexOf("://")); } - var port = (a.port == "")? (schema=="http"?"80":"1935"):a.port; + + var port = a.port; + if (!port) { + if (schema === 'http') { + port = 80; + } else if (schema === 'https') { + port = 443; + } else if (schema === 'rtmp') { + port = 1935; + } else if (schema === 'webrtc' || schema === 'rtc') { + port = 1985; + } + } var ret = { url: rtmp_url, diff --git a/trunk/research/players/rtc_player.html b/trunk/research/players/rtc_player.html index 0f895d5bf..1c8d90a88 100644 --- a/trunk/research/players/rtc_player.html +++ b/trunk/research/players/rtc_player.html @@ -82,7 +82,7 @@ return pc.setLocalDescription(offer).then(function(){ return offer; }); }).then(function(offer) { return new Promise(function(resolve, reject) { - var port = urlObject.user_query.api || 1985; + var port = urlObject.port || 1985; // @see https://github.com/rtcdn/rtcdn-draft var api = urlObject.user_query.play || '/rtc/v1/play/';