( function webpackUniversalModuleDefinition ( root , factory ) {
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = factory ( ) ;
else if ( typeof define === 'function' && define . amd )
define ( [ ] , factory ) ;
else if ( typeof exports === 'object' )
exports [ "plugin-webrtc" ] = factory ( ) ;
else
root [ "plugin-webrtc" ] = factory ( ) ;
} ) ( ( typeof self !== 'undefined' ? self : this ) , function ( ) {
return /******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function __ webpack_require__ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , __ webpack_require__ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __ webpack_require__ . m = modules ;
/******/
/******/ // expose the module cache
/******/ __ webpack_require__ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ __ webpack_require__ . d = function ( exports , name , getter ) {
/******/ if ( ! __ webpack_require__ . o ( exports , name ) ) {
/******/ Object . defineProperty ( exports , name , { enumerable : true , get : getter } ) ;
/******/ }
/******/ } ;
/******/
/******/ // define __esModule on exports
/******/ __ webpack_require__ . r = function ( exports ) {
/******/ if ( typeof Symbol !== 'undefined' && Symbol . toStringTag ) {
/******/ Object . defineProperty ( exports , Symbol . toStringTag , { value : 'Module' } ) ;
/******/ }
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __ webpack_require__ . t = function ( value , mode ) {
/******/ if ( mode & 1 ) value = __ webpack_require__ ( value ) ;
/******/ if ( mode & 8 ) return value ;
/******/ if ( ( mode & 4 ) && typeof value === 'object' && value && value . __ esModule ) return value ;
/******/ var ns = Object . create ( null ) ;
/******/ __ webpack_require__ . r ( ns ) ;
/******/ Object . defineProperty ( ns , 'default' , { enumerable : true , value : value } ) ;
/******/ if ( mode & 2 && typeof value != 'string' ) for ( var key in value ) __ webpack_require__ . d ( ns , key , function ( key ) { return value [ key ] ; } . bind ( null , key ) ) ;
/******/ return ns ;
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __ webpack_require__ . n = function ( module ) {
/******/ var getter = module && module . __ esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ __ webpack_require__ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __ webpack_require__ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ __ webpack_require__ . p = "" ;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __ webpack_require__ ( __ webpack_require__ . s = "fb15" ) ;
/******/ } )
/************************************************************************/
/******/ ( {
/***/ "2871" :
/***/ ( function ( module , __ webpack_exports__ , __ webpack_require__ ) {
"use strict" ;
/* harmony import */ var _ node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_50fea0bc_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __ webpack_require__ ( "c2ab" ) ;
/* harmony import */ var _ node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_50fea0bc_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __ webpack_require__ . n ( _ node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_50fea0bc_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ ) ;
/* unused harmony reexport * */
/* unused harmony default export */ var _ unused_webpack_default_export = ( _ node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_id_50fea0bc_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default . a ) ;
/***/ } ) ,
/***/ "8875" :
/***/ ( function ( module , exports , __ webpack_require__ ) {
var __ WEBPACK_AMD_DEFINE_FACTORY__ , __ WEBPACK_AMD_DEFINE_ARRAY__ , __ WEBPACK_AMD_DEFINE_RESULT__ ; // addapted from the document.currentScript polyfill by Adam Miller
// MIT license
// source: https://github.com/amiller-gh/currentScript-polyfill
// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505
( function ( root , factory ) {
if ( true ) {
! ( __ WEBPACK_AMD_DEFINE_ARRAY__ = [ ] , __ WEBPACK_AMD_DEFINE_FACTORY__ = ( factory ) ,
__ WEBPACK_AMD_DEFINE_RESULT__ = ( typeof __ WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
( __ WEBPACK_AMD_DEFINE_FACTORY__ . apply ( exports , __ WEBPACK_AMD_DEFINE_ARRAY__ ) ) : __ WEBPACK_AMD_DEFINE_FACTORY__ ) ,
__ WEBPACK_AMD_DEFINE_RESULT__ !== undefined && ( module . exports = __ WEBPACK_AMD_DEFINE_RESULT__ ) ) ;
} else { }
} ( typeof self !== 'undefined' ? self : this , function ( ) {
function getCurrentScript ( ) {
if ( document . currentScript ) {
return document . currentScript
}
// IE 8-10 support script readyState
// IE 11+ & Firefox support stack trace
try {
throw new Error ( ) ;
}
catch ( err ) {
// Find the second match for the "at" string to get file src url from stack.
var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig ,
ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig ,
stackDetails = ieStackRegExp . exec ( err . stack ) || ffStackRegExp . exec ( err . stack ) ,
scriptLocation = ( stackDetails && stackDetails [ 1 ] ) || false ,
line = ( stackDetails && stackDetails [ 2 ] ) || false ,
currentLocation = document . location . href . replace ( document . location . hash , '' ) ,
pageSource ,
inlineScriptSourceRegExp ,
inlineScriptSource ,
scripts = document . getElementsByTagName ( 'script' ) ; // Live NodeList collection
if ( scriptLocation === currentLocation ) {
pageSource = document . documentElement . outerHTML ;
inlineScriptSourceRegExp = new RegExp ( '(?:[^\\n]+?\\n){0,' + ( line - 2 ) + '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*' , 'i' ) ;
inlineScriptSource = pageSource . replace ( inlineScriptSourceRegExp , '$1' ) . trim ( ) ;
}
for ( var i = 0 ; i < scripts . length ; i ++ ) {
// If ready state is interactive, return the script tag
if ( scripts [ i ] . readyState === 'interactive' ) {
return scripts [ i ] ;
}
// If src matches, return the script tag
if ( scripts [ i ] . src === scriptLocation ) {
return scripts [ i ] ;
}
// If inline source matches, return the script tag
if (
scriptLocation === currentLocation &&
scripts [ i ] . innerHTML &&
scripts [ i ] . innerHTML . trim ( ) === inlineScriptSource
) {
return scripts [ i ] ;
}
}
// If no match, return null
return null ;
}
} ;
return getCurrentScript
} ) ) ;
/***/ } ) ,
/***/ "c2ab" :
/***/ ( function ( module , exports , __ webpack_require__ ) {
// extracted by mini-css-extract-plugin
/***/ } ) ,
/***/ "fb15" :
/***/ ( function ( module , __ webpack_exports__ , __ webpack_require__ ) {
"use strict" ;
// ESM COMPAT FLAG
__ webpack_require__ . r ( __ webpack_exports__ ) ;
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.
if ( typeof window !== 'undefined' ) {
var currentScript = window . document . currentScript
if ( true ) {
var getCurrentScript = __ webpack_require__ ( "8875" )
currentScript = getCurrentScript ( )
// for backward compatibility, because previously we directly included the polyfill
if ( ! ( 'currentScript' in document ) ) {
Object . defineProperty ( document , 'currentScript' , { get : getCurrentScript } )
}
}
var src = currentScript && currentScript . src . match ( /(.+\/)[^/]+\.js(\?.*)?$/ )
if ( src ) {
__ webpack_require__ . p = src [ 1 ] // eslint-disable-line
}
}
// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = ( null ) ;
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d106341-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/App.vue?vue&type=template&id=50fea0bc&scoped=true&
var render = function ( ) { var _ vm = this ; var _ h = _ vm . $createElement ; var _ c = _ vm . _ self . _ c || _ h ; return _ c ( 'div' , [ ( _ vm . $parent . titleTabActive == 0 ) ? _ c ( 'div' , [ _ c ( 'mu-text-field' , { attrs : { "label" : "streamPath" } , model : { value : ( _ vm . streamPath ) , callback : function ( $$v ) { _ vm . streamPath = $$v } , expression : "streamPath" } } ) , ( ! _ vm . remoteSDP ) ? _ c ( 'm-button' , { on : { "click" : _ vm . publish } } , [ _ vm . _ v ( "Publish" ) ] ) : _ c ( 'm-button' , { on : { "click" : _ vm . stopSession } } , [ _ vm . _ v ( "Stop" ) ] ) , ( _ 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 ( ) , _ c ( 'br' ) , _ c ( 'video' , { ref : "video1" , attrs : { "width" : "640" , "height" : "480" , "autoplay" : "" , "muted" : "" } , domProps : { "srcObject" : _ vm . stream , "muted" : true } } ) ] , 1 ) : ( _ vm . $parent . titleTabActive == 1 ) ? _ c ( 'stream-table' , { scopedSlots : _ vm . _ u ( [ { key : "default" , fn : function ( scope ) { return [ _ c ( 'm-button' , { on : { "click" : function ( $event ) { return _ vm . preview ( scope ) } } } , [ _ vm . _ v ( "Play" ) ] ) , void 0 ] } } ] ) } ) : ( _ vm . $parent . titleTabActive == 2 ) ? _ c ( 'pre' , [ _ vm . _ v ( _ vm . _ s ( _ vm . localSDP ) ) ] ) : ( _ vm . $parent . titleTabActive == 3 ) ? _ c ( 'pre' , [ _ vm . _ v ( _ vm . _ s ( _ vm . remoteSDP ) ) ] ) : _ vm . _ e ( ) , _ c ( 'webrtc-player' , { ref : "player" , model : { value : ( _ vm . previewStreamPath ) , callback : function ( $$v ) { _ vm . previewStreamPath = $$v } , expression : "previewStreamPath" } } ) ] , 1 ) }
var staticRenderFns = [ ]
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=50fea0bc&scoped=true&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d106341-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=edf62584&
var Playervue_type_template_id_edf62584_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_edf62584_staticRenderFns = [ ]
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=edf62584&
// 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&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
let pc = null ;
/* harmony default export */ var Playervue_type_script_lang_js_ = ( {
data ( ) {
return {
iceConnectionState : pc && pc . iceConnectionState ,
stream : null ,
localSDP : "" ,
remoteSDP : "" ,
remoteSDPURL : "" ,
localSDPURL : "" ,
streamPath : ""
} ;
} ,
methods : {
async play ( streamPath ) {
pc = new RTCPeerConnection ( ) ;
this . streamPath = streamPath ;
pc . onsignalingstatechange = e => {
console . log ( e ) ;
} ;
pc . oniceconnectionstatechange = e => {
this . $toast . info ( pc . iceConnectionState ) ;
this . iceConnectionState = pc . iceConnectionState ;
} ;
pc . onicecandidate = event => { } ;
const result = await this . ajax ( {
url : "/webrtc/preparePlay?streamPath=" + this . streamPath ,
dataType : "json"
} ) ;
if ( result . errmsg ) {
this . $toast . error ( result . errmsg ) ;
return ;
} else {
this . remoteSDP = result . sdp ;
this . remoteSDPURL = URL . createObjectURL (
new Blob ( [ this . remoteSDP ] , { type : "text/plain" } )
) ;
}
pc . ontrack = event => {
console . log ( event ) ;
if ( event . streams [ 0 ] . id == "monibuca" ) this . stream = event . streams [ 0 ] ;
} ;
await pc . setRemoteDescription ( new RTCSessionDescription ( result ) ) ;
await pc . setLocalDescription ( await pc . createAnswer ( ) ) ;
this . localSDP = pc . localDescription . sdp ;
this . localSDPURL = URL . createObjectURL (
new Blob ( [ this . localSDP ] , { type : "text/plain" } )
) ;
result = await this . ajax ( {
type : "POST" ,
processData : false ,
data : JSON . stringify ( pc . localDescription ) ,
url : "/webrtc/play?streamPath=" + this . streamPath ,
dataType : "json"
} ) ;
if ( result != "success" ) {
this . $toast . error ( result . errmsg || result ) ;
}
} ,
onClosePreview ( ) {
pc . close ( ) ;
}
}
} ) ;
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=script&lang=js&
/* harmony default export */ var components_Playervue_type_script_lang_js_ = ( Playervue_type_script_lang_js_ ) ;
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
/* globals __VUE_SSR_CONTEXT__ */
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.
function normalizeComponent (
scriptExports ,
render ,
staticRenderFns ,
functionalTemplate ,
injectStyles ,
scopeId ,
moduleIdentifier , /* server only */
shadowMode /* vue-cli only */
) {
// Vue.extend constructor export interop
var options = typeof scriptExports === 'function'
? scriptExports . options
: scriptExports
// render functions
if ( render ) {
options . render = render
options . staticRenderFns = staticRenderFns
options . _ compiled = true
}
// functional template
if ( functionalTemplate ) {
options . functional = true
}
// scopedId
if ( scopeId ) {
options . _ scopeId = 'data-v-' + scopeId
}
var hook
if ( moduleIdentifier ) { // server build
hook = function ( context ) {
// 2.3 injection
context =
context || // cached call
( this . $vnode && this . $vnode . ssrContext ) || // stateful
( this . parent && this . parent . $vnode && this . parent . $vnode . ssrContext ) // functional
// 2.2 with runInNewContext: true
if ( ! context && typeof __ VUE_SSR_CONTEXT__ !== 'undefined' ) {
context = __ VUE_SSR_CONTEXT__
}
// inject component styles
if ( injectStyles ) {
injectStyles . call ( this , context )
}
// register component module identifier for async chunk inferrence
if ( context && context . _ registeredComponents ) {
context . _ registeredComponents . add ( moduleIdentifier )
}
}
// used by ssr in case component is cached and beforeCreate
// never gets called
options . _ ssrRegister = hook
} else if ( injectStyles ) {
hook = shadowMode
? function ( ) {
injectStyles . call (
this ,
( options . functional ? this . parent : this ) . $root . $options . shadowRoot
)
}
: injectStyles
}
if ( hook ) {
if ( options . functional ) {
// for template-only hot-reload because in that case the render fn doesn't
// go through the normalizer
options . _ injectStyles = hook
// register for functional component in vue file
var originalRender = options . render
options . render = function renderWithStyleInjection ( h , context ) {
hook . call ( context )
return originalRender ( h , context )
}
} else {
// inject component registration as beforeCreate hook
var existing = options . beforeCreate
options . beforeCreate = existing
? [ ] . concat ( existing , hook )
: [ hook ]
}
}
return {
exports : scriptExports ,
options : options
}
}
// CONCATENATED MODULE: ./src/components/Player.vue
/* normalize component */
var component = normalizeComponent (
components_Playervue_type_script_lang_js_ ,
Playervue_type_template_id_edf62584_render ,
Playervue_type_template_id_edf62584_staticRenderFns ,
false ,
null ,
null ,
null
)
/* harmony default export */ var Player = ( component . exports ) ;
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
const config = { iceServers : [ ] } ;
let Appvue_type_script_lang_js_pc = new RTCPeerConnection ( config ) ;
var stream = null
var streamPath = "live/rtc" ;
/* harmony default export */ var Appvue_type_script_lang_js_ = ( {
components : {
WebrtcPlayer : Player
} ,
data ( ) {
return {
localSDP : Appvue_type_script_lang_js_pc && Appvue_type_script_lang_js_pc . localDescription && Appvue_type_script_lang_js_pc . localDescription . sdp ,
remoteSDP : Appvue_type_script_lang_js_pc && Appvue_type_script_lang_js_pc . remoteDescription && Appvue_type_script_lang_js_pc . remoteDescription . sdp ,
streamPath ,
iceConnectionState : Appvue_type_script_lang_js_pc && Appvue_type_script_lang_js_pc . iceConnectionState ,
stream ,
previewStreamPath : false ,
localSDPURL : "" ,
remoteSDPURL : ""
} ;
} ,
methods : {
async publish ( ) {
Appvue_type_script_lang_js_pc . addStream ( stream ) ;
await Appvue_type_script_lang_js_pc . setLocalDescription ( await Appvue_type_script_lang_js_pc . createOffer ( ) ) ;
this . localSDP = Appvue_type_script_lang_js_pc . localDescription . sdp ;
this . localSDPURL = URL . createObjectURL ( new Blob ( [ this . localSDP ] , { type : 'text/plain' } ) )
const result = await this . ajax ( {
type : "POST" ,
processData : false ,
data : JSON . stringify ( Appvue_type_script_lang_js_pc . localDescription ) ,
url : "/webrtc/publish?streamPath=" + this . streamPath ,
dataType : "json"
} ) ;
console . log ( result )
if ( typeof result == "string" ) {
this . $toast . error ( result ) ;
return ;
}
streamPath = this . streamPath ;
this . remoteSDP = result . sdp ;
this . remoteSDPURL = URL . createObjectURL ( new Blob ( [ this . remoteSDP ] , { type : 'text/plain' } ) )
Appvue_type_script_lang_js_pc . setRemoteDescription ( new RTCSessionDescription ( result ) ) ;
} ,
stopSession ( ) {
Appvue_type_script_lang_js_pc . close ( ) ;
Appvue_type_script_lang_js_pc = new RTCPeerConnection ( config ) ;
this . remoteSDP = "" ;
this . localSDP = "" ;
// this.connectICE().catch(err => this.$toast.error(err.message));
} ,
preview ( { row } ) {
this . previewStreamPath = true
this . $nextTick ( ( ) => this . $refs . player . play ( row . StreamPath ) ) ;
} ,
} ,
async mounted ( ) {
Appvue_type_script_lang_js_pc . onsignalingstatechange = e => {
console . log ( e ) ;
} ;
Appvue_type_script_lang_js_pc . oniceconnectionstatechange = e => {
this . $toast . info ( Appvue_type_script_lang_js_pc . iceConnectionState ) ;
this . iceConnectionState = Appvue_type_script_lang_js_pc . iceConnectionState ;
} ;
Appvue_type_script_lang_js_pc . onicecandidate = event => { } ;
this . $parent . titleTabs = [ "publish" , "play" ] ;
try {
if ( ! this . stream )
this . stream = stream = await navigator . mediaDevices . getUserMedia (
{ video : true , audio : true }
) ;
} catch ( err ) {
this . $toast . error ( err . message ) ;
}
}
} ) ;
// CONCATENATED MODULE: ./src/App.vue?vue&type=script&lang=js&
/* harmony default export */ var src_Appvue_type_script_lang_js_ = ( Appvue_type_script_lang_js_ ) ;
// EXTERNAL MODULE: ./src/App.vue?vue&type=style&index=0&id=50fea0bc&scoped=true&lang=css&
var Appvue_type_style_index_0_id_50fea0bc_scoped_true_lang_css_ = __ webpack_require__ ( "2871" ) ;
// CONCATENATED MODULE: ./src/App.vue
/* normalize component */
var App_component = normalizeComponent (
src_Appvue_type_script_lang_js_ ,
render ,
staticRenderFns ,
false ,
null ,
"50fea0bc" ,
null
)
/* harmony default export */ var App = ( App_component . exports ) ;
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
/* harmony default export */ var entry_lib = __ webpack_exports__ [ "default" ] = ( App ) ;
/***/ } )
/******/ } ) [ "default" ] ;
} ) ;
//# sourceMappingURL=plugin-webrtc.umd.js.map