|
|
@ -96,18 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap |
|
|
|
/************************************************************************/ |
|
|
|
/******/ ({ |
|
|
|
|
|
|
|
/***/ "11a1": |
|
|
|
/***/ (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_09aaef78_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("30b5"); |
|
|
|
/* 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_09aaef78_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_09aaef78_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_09aaef78_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); |
|
|
|
|
|
|
|
/***/ }), |
|
|
|
|
|
|
|
/***/ "30b5": |
|
|
|
/***/ "3f2c": |
|
|
|
/***/ (function(module, exports, __webpack_require__) { |
|
|
|
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
@ -190,6 +179,17 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ |
|
|
|
})); |
|
|
|
|
|
|
|
|
|
|
|
/***/ }), |
|
|
|
|
|
|
|
/***/ "b2e7": |
|
|
|
/***/ (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_b8166bc0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3f2c"); |
|
|
|
/* 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_b8166bc0_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_b8166bc0_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_b8166bc0_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); |
|
|
|
|
|
|
|
/***/ }), |
|
|
|
|
|
|
|
/***/ "fb15": |
|
|
@ -223,15 +223,21 @@ if (typeof window !== 'undefined') { |
|
|
|
// 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=09aaef78&scoped=true&
|
|
|
|
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.$parent.titleTabActive == 1)?_c('pre',[_vm._v(_vm._s(_vm.localSDP))]):(_vm.$parent.titleTabActive == 2)?_c('pre',[_vm._v(_vm._s(_vm.remoteSDP))]):_c('div',[_c('mu-text-field',{attrs:{"label":"streamPath"},model:{value:(_vm.streamPath),callback:function ($$v) {_vm.streamPath=$$v},expression:"streamPath"}}),(!_vm.localSDP || _vm.ask)?_c('span',{staticClass:"blink"},[_vm._v("Connecting")]):_vm._e(),[_c('m-button',{on:{"click":function($event){return _vm.startSession('publish')}}},[_vm._v("Publish")]),_c('m-button',{on:{"click":function($event){return _vm.startSession('play')}}},[_vm._v("Play")])],_c('m-button',{on:{"click":_vm.stopSession}},[_vm._v("Stop")]),_c('br'),_c('video',{ref:"video1",attrs:{"width":"640","height":"480","autoplay":"","muted":""},domProps:{"srcObject":_vm.stream,"muted":true}})],2)])} |
|
|
|
// 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=b8166bc0&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('a',{attrs:{"href":_vm.remoteSDPURL,"download":"remoteSDP.txt"}},[_vm._v("remoteSDP")]):_vm._e(),_c('span'),(_vm.localSDP)?_c('a',{attrs:{"href":_vm.localSDPURL,"download":"localSDP.txt"}},[_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=09aaef78&scoped=true&
|
|
|
|
// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=b8166bc0&scoped=true&
|
|
|
|
|
|
|
|
// 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&
|
|
|
|
//
|
|
|
|
// 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=213e71c4&
|
|
|
|
var Playervue_type_template_id_213e71c4_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('a',{attrs:{"href":_vm.remoteSDPURL,"download":"remoteSDP.txt"}},[_vm._v("remoteSDP")]):_vm._e(),_c('span'),(_vm.localSDP)?_c('a',{attrs:{"href":_vm.localSDPURL,"download":"localSDP.txt"}},[_vm._v("localSDP")]):_vm._e()])])} |
|
|
|
var Playervue_type_template_id_213e71c4_staticRenderFns = [] |
|
|
|
|
|
|
|
|
|
|
|
// CONCATENATED MODULE: ./src/components/Player.vue?vue&type=template&id=213e71c4&
|
|
|
|
|
|
|
|
// 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&
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//
|
|
|
@ -250,135 +256,72 @@ var staticRenderFns = [] |
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
const config = { |
|
|
|
iceServers: [ |
|
|
|
// {
|
|
|
|
// urls:[
|
|
|
|
// "stun:stun.ekiga.net",
|
|
|
|
// "stun:stun.ideasip.com",
|
|
|
|
// "stun:stun.schlund.de",
|
|
|
|
// "stun:stun.stunprotocol.org:3478",
|
|
|
|
// "stun:stun.voiparound.com",
|
|
|
|
// "stun:stun.voipbuster.com",
|
|
|
|
// "stun:stun.voipstunt.com",
|
|
|
|
// "stun:stun.voxgratia.org",
|
|
|
|
// "stun:stun.services.mozilla.com",
|
|
|
|
// "stun:stun.xten.com",
|
|
|
|
// "stun:stun.softjoys.com",
|
|
|
|
// "stun:stunserver.org",
|
|
|
|
// "stun:stun.schlund.de",
|
|
|
|
// "stun:stun.rixtelecom.se",
|
|
|
|
// "stun:stun.iptel.org",
|
|
|
|
// "stun:stun.ideasip.com",
|
|
|
|
// "stun:stun.fwdnet.net",
|
|
|
|
// "stun:stun.ekiga.net",
|
|
|
|
// "stun:stun01.sipphone.com",
|
|
|
|
// ]
|
|
|
|
// }
|
|
|
|
] |
|
|
|
}; |
|
|
|
let pc = new RTCPeerConnection(config); |
|
|
|
var stream = null; |
|
|
|
var streamPath = "live/rtc"; |
|
|
|
/* harmony default export */ var Appvue_type_script_lang_js_ = ({ |
|
|
|
let pc = null |
|
|
|
/* harmony default export */ var Playervue_type_script_lang_js_ = ({ |
|
|
|
data() { |
|
|
|
return { |
|
|
|
localSDP: pc && pc.localDescription && pc.localDescription.sdp, |
|
|
|
remoteSDP: pc && pc.remoteDescription && pc.remoteDescription.sdp, |
|
|
|
streamPath, |
|
|
|
iceConnectionState: pc && pc.iceConnectionState, |
|
|
|
stream, |
|
|
|
type: "", |
|
|
|
ask: false |
|
|
|
stream: null, |
|
|
|
localSDP: "", |
|
|
|
remoteSDP: "", |
|
|
|
remoteSDPURL: "", |
|
|
|
localSDPURL: "", |
|
|
|
streamPath: "" |
|
|
|
}; |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
async startSession(type) { |
|
|
|
this.type = type; |
|
|
|
this.ask = true; |
|
|
|
if (type == "play") { |
|
|
|
const result = await this.ajax({ |
|
|
|
url: "/webrtc/preparePlay?streamPath=" + this.streamPath, |
|
|
|
dataType: "json" |
|
|
|
}); |
|
|
|
if (result.errmsg) { |
|
|
|
this.$toast.error(result.errmsg); |
|
|
|
return; |
|
|
|
} else { |
|
|
|
streamPath = this.streamPath; |
|
|
|
this.remoteSDP = result.sdp; |
|
|
|
} |
|
|
|
pc.ontrack = event => { |
|
|
|
console.log(event) |
|
|
|
if (event.streams[0].id == "monibuca") |
|
|
|
this.stream = stream = event.streams[0]; |
|
|
|
}; |
|
|
|
await pc.setRemoteDescription( |
|
|
|
new RTCSessionDescription(result) |
|
|
|
); |
|
|
|
await pc.setLocalDescription(await pc.createAnswer()); |
|
|
|
this.localSDP = pc.localDescription.sdp; |
|
|
|
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 { |
|
|
|
pc.addStream(stream); |
|
|
|
await pc.setLocalDescription(await pc.createOffer()); |
|
|
|
this.localSDP = pc.localDescription.sdp; |
|
|
|
this.remoteSDP = result.sdp; |
|
|
|
this.remoteSDPURL = URL.createObjectURL(new Blob([this.remoteSDP], { type: "text/plain" })); |
|
|
|
} |
|
|
|
const result = await this.ajax({ |
|
|
|
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/" + type + "?streamPath=" + this.streamPath, |
|
|
|
url: "/webrtc/play?streamPath=" + this.streamPath, |
|
|
|
dataType: "json" |
|
|
|
}); |
|
|
|
this.ask = false; |
|
|
|
if (result!="success") { |
|
|
|
this.$toast.error(result.errmsg||result); |
|
|
|
return; |
|
|
|
} else { |
|
|
|
streamPath = this.streamPath; |
|
|
|
} |
|
|
|
if (type == "play") { |
|
|
|
|
|
|
|
} else { |
|
|
|
this.remoteSDP = result.sdp; |
|
|
|
pc.setRemoteDescription(new RTCSessionDescription(result)); |
|
|
|
if (result != "success") { |
|
|
|
this.$toast.error(result.errmsg || result); |
|
|
|
} |
|
|
|
}, |
|
|
|
stopSession() { |
|
|
|
onClosePreview() { |
|
|
|
pc.close(); |
|
|
|
pc = new RTCPeerConnection(config); |
|
|
|
this.remoteSDP = ""; |
|
|
|
this.localSDP = ""; |
|
|
|
this.type = ""; |
|
|
|
// this.connectICE().catch(err => this.$toast.error(err.message));
|
|
|
|
} |
|
|
|
}, |
|
|
|
async mounted() { |
|
|
|
pc.onsignalingstatechange = e => { |
|
|
|
console.log(e); |
|
|
|
}; |
|
|
|
pc.oniceconnectionstatechange = e => { |
|
|
|
this.$toast.info(pc.iceConnectionState); |
|
|
|
this.iceConnectionState = pc.iceConnectionState; |
|
|
|
}; |
|
|
|
pc.onicecandidate = event => {}; |
|
|
|
this.$parent.titleTabs = ["摄像头", "localSDP", "remoteSDP"]; |
|
|
|
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=09aaef78&scoped=true&lang=css&
|
|
|
|
var Appvue_type_style_index_0_id_09aaef78_scoped_true_lang_css_ = __webpack_require__("11a1"); |
|
|
|
|
|
|
|
// 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__ */ |
|
|
|
|
|
|
@ -479,6 +422,133 @@ function normalizeComponent ( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// CONCATENATED MODULE: ./src/components/Player.vue
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* normalize component */ |
|
|
|
|
|
|
|
var component = normalizeComponent( |
|
|
|
components_Playervue_type_script_lang_js_, |
|
|
|
Playervue_type_template_id_213e71c4_render, |
|
|
|
Playervue_type_template_id_213e71c4_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" |
|
|
|
}); |
|
|
|
if (result!="success") { |
|
|
|
this.$toast.error(result.errmsg||result); |
|
|
|
return; |
|
|
|
} else { |
|
|
|
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=b8166bc0&scoped=true&lang=css&
|
|
|
|
var Appvue_type_style_index_0_id_b8166bc0_scoped_true_lang_css_ = __webpack_require__("b2e7"); |
|
|
|
|
|
|
|
// CONCATENATED MODULE: ./src/App.vue
|
|
|
|
|
|
|
|
|
|
|
@ -488,18 +558,18 @@ function normalizeComponent ( |
|
|
|
|
|
|
|
/* normalize component */ |
|
|
|
|
|
|
|
var component = normalizeComponent( |
|
|
|
var App_component = normalizeComponent( |
|
|
|
src_Appvue_type_script_lang_js_, |
|
|
|
render, |
|
|
|
staticRenderFns, |
|
|
|
false, |
|
|
|
null, |
|
|
|
"09aaef78", |
|
|
|
"b8166bc0", |
|
|
|
null |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
/* harmony default export */ var App = (component.exports); |
|
|
|
/* harmony default export */ var App = (App_component.exports); |
|
|
|
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
|
|
|
|
|
|
|
|
|
|
|
|