From 618b0507828be4bd29f9da7aa82ba7380135625b Mon Sep 17 00:00:00 2001
From: langhuihui <178529795@qq.com>
Date: Wed, 2 Sep 2020 08:35:27 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=9E=E6=8E=A5=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
main.go | 2 +-
ui/dist/plugin-webrtc.common.js | 14 +++++++-------
ui/dist/plugin-webrtc.common.js.map | 2 +-
ui/dist/plugin-webrtc.umd.js | 14 +++++++-------
ui/dist/plugin-webrtc.umd.js.map | 2 +-
ui/dist/plugin-webrtc.umd.min.js | 2 +-
ui/dist/plugin-webrtc.umd.min.js.map | 2 +-
ui/src/components/Player.vue | 2 +-
8 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/main.go b/main.go
index 8e22724..08b6f75 100644
--- a/main.go
+++ b/main.go
@@ -3,6 +3,7 @@ package webrtc
import (
"encoding/json"
"fmt"
+ "github.com/pion/turn"
"io/ioutil"
"log"
"net"
@@ -14,7 +15,6 @@ import (
"github.com/Monibuca/engine/v2/avformat"
. "github.com/Monibuca/plugin-rtp"
"github.com/pion/rtcp"
- "github.com/pion/turn/v2"
. "github.com/pion/webrtc/v2"
"github.com/pion/webrtc/v2/pkg/media"
)
diff --git a/ui/dist/plugin-webrtc.common.js b/ui/dist/plugin-webrtc.common.js
index 379c0a7..e3409e1 100644
--- a/ui/dist/plugin-webrtc.common.js
+++ b/ui/dist/plugin-webrtc.common.js
@@ -221,12 +221,12 @@ var staticRenderFns = []
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true&
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=257c2ab0&
-var Playervue_type_template_id_257c2ab0_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
-var Playervue_type_template_id_257c2ab0_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=7e3b881f&
+var Playervue_type_template_id_7e3b881f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
+var Playervue_type_template_id_7e3b881f_staticRenderFns = []
-// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=257c2ab0&
+// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=7e3b881f&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=script&lang=js&
//
@@ -268,7 +268,7 @@ props:{
},
methods: {
async play(streamPath) {
- pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP}]});
+ pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
pc.addTransceiver('video',{
direction:'recvonly'
})
@@ -427,8 +427,8 @@ function normalizeComponent (
var component = normalizeComponent(
components_Playervue_type_script_lang_js_,
- Playervue_type_template_id_257c2ab0_render,
- Playervue_type_template_id_257c2ab0_staticRenderFns,
+ Playervue_type_template_id_7e3b881f_render,
+ Playervue_type_template_id_7e3b881f_staticRenderFns,
false,
null,
null,
diff --git a/ui/dist/plugin-webrtc.common.js.map b/ui/dist/plugin-webrtc.common.js.map
index ef52b48..b46658b 100644
--- a/ui/dist/plugin-webrtc.common.js.map
+++ b/ui/dist/plugin-webrtc.common.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://plugin-webrtc/webpack/bootstrap","webpack://plugin-webrtc/./src/App.vue?9117","webpack://plugin-webrtc/./node_modules/@soda/get-current-script/index.js","webpack://plugin-webrtc/./src/App.vue?9c65","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://plugin-webrtc/./src/App.vue?4f1b","webpack://plugin-webrtc/./src/components/Player.vue?d24c","webpack://plugin-webrtc/src/components/Player.vue","webpack://plugin-webrtc/./src/components/Player.vue?42e4","webpack://plugin-webrtc/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://plugin-webrtc/./src/components/Player.vue","webpack://plugin-webrtc/src/App.vue","webpack://plugin-webrtc/./src/App.vue?8b47","webpack://plugin-webrtc/./src/App.vue","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":[],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;ACvED;AAAA;AAAA;AAAgc,CAAgB,ggBAAG,EAAC,C;;;;;;;;;;;;ACApd;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAAC,MAA0B;AAC7D;;AAEA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;ACrBnB,0BAA0B,aAAa,0BAA0B,wBAAwB,iFAAiF,OAAO,qBAAqB,QAAQ,gDAAgD,mBAAmB,0BAA0B,kCAAkC,IAAI,qBAAqB,qCAAqC,IAAI,yBAAyB,0DAA0D,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB,uDAAuD,oBAAoB,sDAAsD,WAAW,qCAAqC,2DAA2D,qBAAqB,iCAAiC,uBAAuB,IAAI,yBAAyB,4BAA4B,4BAA4B,GAAG,sLAAsL,oBAAoB,wBAAwB,QAAQ,uDAAuD,0BAA0B,iCAAiC;AAC58C;;;;;;ACDA,IAAI,0CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iCAAiC,OAAO,sCAAsC,KAAK,2DAA2D,wDAAwD,oBAAoB,oEAAoE,WAAW,qCAAqC,YAAY,OAAO,gBAAgB,eAAe,yCAAyC,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB;AAC/vB,IAAI,mDAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBnB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACpF6K,CAAgB,4GAAG,EAAC,C;;ACAnM;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjGqF;AAC3B;AACL;;;AAGrD;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,yCAAM;AACR,EAAE,0CAAM;AACR,EAAE,mDAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACS+B;AAC9C;AACA,IAAI,6BAAE;AACN;AACA;AACe;AACf;AACA,QAAQ,oBAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAE,IAAI,6BAAE,qBAAqB,6BAAE;AACrD,uBAAuB,6BAAE,IAAI,6BAAE,sBAAsB,6BAAE;AACvD;AACA,gCAAgC,6BAAE,IAAI,6BAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd,kBAAkB,6BAAE,2BAA2B,6BAAE;AACjD,4BAA4B,6BAAE;AAC9B;AACA;AACA;AACA;AACA,qCAAqC,6BAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd;AACA;AACA,YAAY,6BAAE;AACd,YAAY,6BAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAE;AACV;AACA;AACA,QAAQ,6BAAE;AACV,6BAA6B,6BAAE;AAC/B,sCAAsC,6BAAE;AACxC;AACA,QAAQ,6BAAE;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACzGoK,CAAgB,+FAAG,EAAC,C;;;;;ACA5F;AACvC;AACL;AACqC;;;AAGvF;AACuF;AACvF,IAAI,aAAS,GAAG,kBAAU;AAC1B,EAAE,+BAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,qDAAS,Q;;ACnBA;AACA;AACT,kFAAG;AACI","file":"plugin-webrtc.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n if (document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=257c2ab0&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://plugin-webrtc/webpack/bootstrap","webpack://plugin-webrtc/./src/App.vue?9117","webpack://plugin-webrtc/./node_modules/@soda/get-current-script/index.js","webpack://plugin-webrtc/./src/App.vue?9c65","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://plugin-webrtc/./src/App.vue?4f1b","webpack://plugin-webrtc/./src/components/Player.vue?40de","webpack://plugin-webrtc/src/components/Player.vue","webpack://plugin-webrtc/./src/components/Player.vue?42e4","webpack://plugin-webrtc/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://plugin-webrtc/./src/components/Player.vue","webpack://plugin-webrtc/src/App.vue","webpack://plugin-webrtc/./src/App.vue?8b47","webpack://plugin-webrtc/./src/App.vue","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":[],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;ACvED;AAAA;AAAA;AAAgc,CAAgB,ggBAAG,EAAC,C;;;;;;;;;;;;ACApd;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAAC,MAA0B;AAC7D;;AAEA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;ACrBnB,0BAA0B,aAAa,0BAA0B,wBAAwB,iFAAiF,OAAO,qBAAqB,QAAQ,gDAAgD,mBAAmB,0BAA0B,kCAAkC,IAAI,qBAAqB,qCAAqC,IAAI,yBAAyB,0DAA0D,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB,uDAAuD,oBAAoB,sDAAsD,WAAW,qCAAqC,2DAA2D,qBAAqB,iCAAiC,uBAAuB,IAAI,yBAAyB,4BAA4B,4BAA4B,GAAG,sLAAsL,oBAAoB,wBAAwB,QAAQ,uDAAuD,0BAA0B,iCAAiC;AAC58C;;;;;;ACDA,IAAI,0CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iCAAiC,OAAO,sCAAsC,KAAK,2DAA2D,wDAAwD,oBAAoB,oEAAoE,WAAW,qCAAqC,YAAY,OAAO,gBAAgB,eAAe,yCAAyC,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB;AAC/vB,IAAI,mDAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBnB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACpF6K,CAAgB,4GAAG,EAAC,C;;ACAnM;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjGqF;AAC3B;AACL;;;AAGrD;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,yCAAM;AACR,EAAE,0CAAM;AACR,EAAE,mDAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACS+B;AAC9C;AACA,IAAI,6BAAE;AACN;AACA;AACe;AACf;AACA,QAAQ,oBAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAE,IAAI,6BAAE,qBAAqB,6BAAE;AACrD,uBAAuB,6BAAE,IAAI,6BAAE,sBAAsB,6BAAE;AACvD;AACA,gCAAgC,6BAAE,IAAI,6BAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd,kBAAkB,6BAAE,2BAA2B,6BAAE;AACjD,4BAA4B,6BAAE;AAC9B;AACA;AACA;AACA;AACA,qCAAqC,6BAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd;AACA;AACA,YAAY,6BAAE;AACd,YAAY,6BAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAE;AACV;AACA;AACA,QAAQ,6BAAE;AACV,6BAA6B,6BAAE;AAC/B,sCAAsC,6BAAE;AACxC;AACA,QAAQ,6BAAE;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACzGoK,CAAgB,+FAAG,EAAC,C;;;;;ACA5F;AACvC;AACL;AACqC;;;AAGvF;AACuF;AACvF,IAAI,aAAS,GAAG,kBAAU;AAC1B,EAAE,+BAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,qDAAS,Q;;ACnBA;AACA;AACT,kFAAG;AACI","file":"plugin-webrtc.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n if (document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=7e3b881f&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/ui/dist/plugin-webrtc.umd.js b/ui/dist/plugin-webrtc.umd.js
index de1d597..eb56634 100644
--- a/ui/dist/plugin-webrtc.umd.js
+++ b/ui/dist/plugin-webrtc.umd.js
@@ -230,12 +230,12 @@ var staticRenderFns = []
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=674ea55a&scoped=true&
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=257c2ab0&
-var Playervue_type_template_id_257c2ab0_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
-var Playervue_type_template_id_257c2ab0_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0b526416-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=template&id=7e3b881f&
+var Playervue_type_template_id_7e3b881f_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{"draggable":"","title":_vm.streamPath},on:{"on-ok":_vm.onClosePreview,"on-cancel":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('video',{ref:"webrtc",attrs:{"width":"488","height":"275","autoplay":"","muted":"","controls":""},domProps:{"srcObject":_vm.stream,"muted":true}}),_c('div',{attrs:{"slot":"footer"},slot:"footer"},[(_vm.remoteSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.remoteSDPURL,"download":"remoteSDP.txt"},slot:"content"},[_vm._v("remoteSDP")])]):_vm._e(),(_vm.localSDP)?_c('mu-badge',[_c('a',{attrs:{"slot":"content","href":_vm.localSDPURL,"download":"localSDP.txt"},slot:"content"},[_vm._v("localSDP")])]):_vm._e()],1)])}
+var Playervue_type_template_id_7e3b881f_staticRenderFns = []
-// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=257c2ab0&
+// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=7e3b881f&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Player.vue?vue&type=script&lang=js&
//
@@ -277,7 +277,7 @@ props:{
},
methods: {
async play(streamPath) {
- pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP}]});
+ pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
pc.addTransceiver('video',{
direction:'recvonly'
})
@@ -436,8 +436,8 @@ function normalizeComponent (
var component = normalizeComponent(
components_Playervue_type_script_lang_js_,
- Playervue_type_template_id_257c2ab0_render,
- Playervue_type_template_id_257c2ab0_staticRenderFns,
+ Playervue_type_template_id_7e3b881f_render,
+ Playervue_type_template_id_7e3b881f_staticRenderFns,
false,
null,
null,
diff --git a/ui/dist/plugin-webrtc.umd.js.map b/ui/dist/plugin-webrtc.umd.js.map
index 52aba4d..55ac34c 100644
--- a/ui/dist/plugin-webrtc.umd.js.map
+++ b/ui/dist/plugin-webrtc.umd.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://plugin-webrtc/webpack/universalModuleDefinition","webpack://plugin-webrtc/webpack/bootstrap","webpack://plugin-webrtc/./src/App.vue?9117","webpack://plugin-webrtc/./node_modules/@soda/get-current-script/index.js","webpack://plugin-webrtc/./src/App.vue?9c65","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://plugin-webrtc/./src/App.vue?4f1b","webpack://plugin-webrtc/./src/components/Player.vue?d24c","webpack://plugin-webrtc/src/components/Player.vue","webpack://plugin-webrtc/./src/components/Player.vue?42e4","webpack://plugin-webrtc/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://plugin-webrtc/./src/components/Player.vue","webpack://plugin-webrtc/src/App.vue","webpack://plugin-webrtc/./src/App.vue?8b47","webpack://plugin-webrtc/./src/App.vue","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;ACvED;AAAA;AAAA;AAAgc,CAAgB,ggBAAG,EAAC,C;;;;;;;;;;;;ACApd;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAAC,MAA0B;AAC7D;;AAEA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;ACrBnB,0BAA0B,aAAa,0BAA0B,wBAAwB,iFAAiF,OAAO,qBAAqB,QAAQ,gDAAgD,mBAAmB,0BAA0B,kCAAkC,IAAI,qBAAqB,qCAAqC,IAAI,yBAAyB,0DAA0D,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB,uDAAuD,oBAAoB,sDAAsD,WAAW,qCAAqC,2DAA2D,qBAAqB,iCAAiC,uBAAuB,IAAI,yBAAyB,4BAA4B,4BAA4B,GAAG,sLAAsL,oBAAoB,wBAAwB,QAAQ,uDAAuD,0BAA0B,iCAAiC;AAC58C;;;;;;ACDA,IAAI,0CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iCAAiC,OAAO,sCAAsC,KAAK,2DAA2D,wDAAwD,oBAAoB,oEAAoE,WAAW,qCAAqC,YAAY,OAAO,gBAAgB,eAAe,yCAAyC,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB;AAC/vB,IAAI,mDAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBnB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACpF6K,CAAgB,4GAAG,EAAC,C;;ACAnM;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjGqF;AAC3B;AACL;;;AAGrD;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,yCAAM;AACR,EAAE,0CAAM;AACR,EAAE,mDAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACS+B;AAC9C;AACA,IAAI,6BAAE;AACN;AACA;AACe;AACf;AACA,QAAQ,oBAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAE,IAAI,6BAAE,qBAAqB,6BAAE;AACrD,uBAAuB,6BAAE,IAAI,6BAAE,sBAAsB,6BAAE;AACvD;AACA,gCAAgC,6BAAE,IAAI,6BAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd,kBAAkB,6BAAE,2BAA2B,6BAAE;AACjD,4BAA4B,6BAAE;AAC9B;AACA;AACA;AACA;AACA,qCAAqC,6BAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd;AACA;AACA,YAAY,6BAAE;AACd,YAAY,6BAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAE;AACV;AACA;AACA,QAAQ,6BAAE;AACV,6BAA6B,6BAAE;AAC/B,sCAAsC,6BAAE;AACxC;AACA,QAAQ,6BAAE;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACzGoK,CAAgB,+FAAG,EAAC,C;;;;;ACA5F;AACvC;AACL;AACqC;;;AAGvF;AACuF;AACvF,IAAI,aAAS,GAAG,kBAAU;AAC1B,EAAE,+BAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,qDAAS,Q;;ACnBA;AACA;AACT,kFAAG;AACI","file":"plugin-webrtc.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"plugin-webrtc\"] = factory();\n\telse\n\t\troot[\"plugin-webrtc\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n if (document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=257c2ab0&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://plugin-webrtc/webpack/universalModuleDefinition","webpack://plugin-webrtc/webpack/bootstrap","webpack://plugin-webrtc/./src/App.vue?9117","webpack://plugin-webrtc/./node_modules/@soda/get-current-script/index.js","webpack://plugin-webrtc/./src/App.vue?9c65","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://plugin-webrtc/./src/App.vue?4f1b","webpack://plugin-webrtc/./src/components/Player.vue?40de","webpack://plugin-webrtc/src/components/Player.vue","webpack://plugin-webrtc/./src/components/Player.vue?42e4","webpack://plugin-webrtc/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://plugin-webrtc/./src/components/Player.vue","webpack://plugin-webrtc/src/App.vue","webpack://plugin-webrtc/./src/App.vue?8b47","webpack://plugin-webrtc/./src/App.vue","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;ACvED;AAAA;AAAA;AAAgc,CAAgB,ggBAAG,EAAC,C;;;;;;;;;;;;ACApd;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAAC,MAA0B;AAC7D;;AAEA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;;AAEA;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACe,sDAAI;;;ACrBnB,0BAA0B,aAAa,0BAA0B,wBAAwB,iFAAiF,OAAO,qBAAqB,QAAQ,gDAAgD,mBAAmB,0BAA0B,kCAAkC,IAAI,qBAAqB,qCAAqC,IAAI,yBAAyB,0DAA0D,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB,uDAAuD,oBAAoB,sDAAsD,WAAW,qCAAqC,2DAA2D,qBAAqB,iCAAiC,uBAAuB,IAAI,yBAAyB,4BAA4B,4BAA4B,GAAG,sLAAsL,oBAAoB,wBAAwB,QAAQ,uDAAuD,0BAA0B,iCAAiC;AAC58C;;;;;;ACDA,IAAI,0CAAM,gBAAgB,aAAa,0BAA0B,wBAAwB,iCAAiC,OAAO,sCAAsC,KAAK,2DAA2D,wDAAwD,oBAAoB,oEAAoE,WAAW,qCAAqC,YAAY,OAAO,gBAAgB,eAAe,yCAAyC,OAAO,oEAAoE,gBAAgB,yEAAyE,OAAO,kEAAkE,gBAAgB;AAC/vB,IAAI,mDAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBnB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACpF6K,CAAgB,4GAAG,EAAC,C;;ACAnM;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;ACjGqF;AAC3B;AACL;;;AAGrD;AAC0F;AAC1F,gBAAgB,kBAAU;AAC1B,EAAE,yCAAM;AACR,EAAE,0CAAM;AACR,EAAE,mDAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACS+B;AAC9C;AACA,IAAI,6BAAE;AACN;AACA;AACe;AACf;AACA,QAAQ,oBAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAE,IAAI,6BAAE,qBAAqB,6BAAE;AACrD,uBAAuB,6BAAE,IAAI,6BAAE,sBAAsB,6BAAE;AACvD;AACA,gCAAgC,6BAAE,IAAI,6BAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd,kBAAkB,6BAAE,2BAA2B,6BAAE;AACjD,4BAA4B,6BAAE;AAC9B;AACA;AACA;AACA;AACA,qCAAqC,6BAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAE;AACd;AACA;AACA,YAAY,6BAAE;AACd,YAAY,6BAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAE;AACV;AACA;AACA,QAAQ,6BAAE;AACV,6BAA6B,6BAAE;AAC/B,sCAAsC,6BAAE;AACxC;AACA,QAAQ,6BAAE;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;ACzGoK,CAAgB,+FAAG,EAAC,C;;;;;ACA5F;AACvC;AACL;AACqC;;;AAGvF;AACuF;AACvF,IAAI,aAAS,GAAG,kBAAU;AAC1B,EAAE,+BAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEe,qDAAS,Q;;ACnBA;AACA;AACT,kFAAG;AACI","file":"plugin-webrtc.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"plugin-webrtc\"] = factory();\n\telse\n\t\troot[\"plugin-webrtc\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n if (document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=7e3b881f&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/ui/dist/plugin-webrtc.umd.min.js b/ui/dist/plugin-webrtc.umd.min.js
index 0497d5f..45f376b 100644
--- a/ui/dist/plugin-webrtc.umd.min.js
+++ b/ui/dist/plugin-webrtc.umd.min.js
@@ -1,2 +1,2 @@
-(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["plugin-webrtc"]=t():e["plugin-webrtc"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s="fb15")}({2029:function(e,t,o){},8875:function(e,t,o){var n,r,a;(function(o,i){r=[],n=i,a="function"===typeof n?n.apply(t,r):n,void 0===a||(e.exports=a)})("undefined"!==typeof self&&self,(function(){function e(){if(document.currentScript)return document.currentScript;try{throw new Error}catch(p){var e,t,o,n=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,r=/@([^@]*):(\d+):(\d+)\s*$/gi,a=n.exec(p.stack)||r.exec(p.stack),i=a&&a[1]||!1,c=a&&a[2]||!1,s=document.location.href.replace(document.location.hash,""),l=document.getElementsByTagName("script");i===s&&(e=document.documentElement.outerHTML,t=new RegExp("(?:[^\\n]+?\\n){0,"+(c-2)+"}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=257c2ab0&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://plugin-webrtc/webpack/universalModuleDefinition","webpack://plugin-webrtc/webpack/bootstrap","webpack://plugin-webrtc/./node_modules/@soda/get-current-script/index.js","webpack://plugin-webrtc/./src/App.vue?9c65","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://plugin-webrtc/./src/App.vue?4f1b","webpack://plugin-webrtc/./src/components/Player.vue?40de","webpack://plugin-webrtc/src/components/Player.vue","webpack://plugin-webrtc/./src/components/Player.vue?42e4","webpack://plugin-webrtc/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://plugin-webrtc/./src/components/Player.vue","webpack://plugin-webrtc/src/App.vue","webpack://plugin-webrtc/./src/App.vue?8b47","webpack://plugin-webrtc/./src/App.vue","webpack://plugin-webrtc/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","getCurrentScript","document","currentScript","Error","err","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","exec","stack","scriptLocation","line","currentLocation","location","href","replace","hash","scripts","getElementsByTagName","documentElement","outerHTML","RegExp","trim","length","readyState","src","innerHTML","window","match","render","_vm","_h","$createElement","_c","_self","$parent","titleTabActive","attrs","model","callback","$$v","streamPath","expression","remoteSDP","on","stopSession","_v","publish","remoteSDPURL","slot","_e","localSDPURL","ref","domProps","stream","scopedSlots","_u","fn","scope","$event","preview","_s","localSDP","PublicIP","previewStreamPath","staticRenderFns","_g","_b","onClosePreview","$attrs","$listeners","pc","iceConnectionState","props","String","methods","RTCPeerConnection","iceServers","urls","username","credential","addTransceiver","direction","onsignalingstatechange","e","oniceconnectionstatechange","$toast","info","onicecandidate","event","console","log","ontrack","track","kind","streams","setLocalDescription","createOffer","localDescription","sdp","URL","createObjectURL","Blob","type","result","ajax","processData","data","JSON","stringify","toJSON","url","dataType","errmsg","error","setRemoteDescription","RTCSessionDescription","close","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","config","components","WebrtcPlayer","remoteDescription","addStream","row","$nextTick","$refs","player","play","StreamPath","titleTabs","navigator","mediaDevices","getUserMedia","video","audio","message"],"mappings":"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","file":"plugin-webrtc.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"plugin-webrtc\"] = factory();\n\telse\n\t\troot[\"plugin-webrtc\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n if (document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=7e3b881f&\"\nimport script from \"./Player.vue?vue&type=script&lang=js&\"\nexport * from \"./Player.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n \r\n
\r\n
\r\n
Publish\r\n
Stop\r\n
\r\n remoteSDP\r\n \r\n
\r\n localSDP\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Play\r\n \r\n \r\n
{{localSDP}}
\r\n
{{remoteSDP}}
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=674ea55a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=674ea55a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674ea55a\",\n null\n \n)\n\nexport default component.exports","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/ui/src/components/Player.vue b/ui/src/components/Player.vue
index 7e472db..563855e 100644
--- a/ui/src/components/Player.vue
+++ b/ui/src/components/Player.vue
@@ -37,7 +37,7 @@ props:{
},
methods: {
async play(streamPath) {
- pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP}]});
+ pc = new RTCPeerConnection({iceServers:[{urls:"turn:"+this.PublicIP,username:"monibuca",credential:"test"}]});
pc.addTransceiver('video',{
direction:'recvonly'
})