Цель здесь - использовать платформу OpenTok WebRTC для веб-приложения видеочата, созданного с помощью vue.Вот пример OpenTok в Vue .
Я запутался в том, где вызывать определенные методы для издателя, потому что он вложен в компонент session.vue.Я хочу вызвать такие методы, как:
1) Прекратить публикацию 2) Измените издателя на источник из видео вместо веб-камеры
Это веб-API .
Должен ли я писать методы, которые влияют на издателя, в дочернем компоненте publisher.vue или я должен делать это в родительском компоненте, который вызывает издателя?
Publisher.vue
<template>
<div> </div>
</template>
<script>
import OT from "@opentok/client";
export default {
name: "publisher",
props: {
session: {
type: OT.Session,
required: false
},
rlive: Boolean,
opts: {
type: Object,
required: false
}
},
mounted: function() {
// console.log(this.rlive)
console.log("publisher created")
console.log(this.session)
const publisher = OT.initPublisher(this.$el, this.opts, err => {
if (err) {
this.$emit("error", err);
} else {
this.$emit("publisherCompleted");
}
});
this.$emit("publisherCreated", publisher);
const publish = () => {
this.session.publish(publisher, err => {
if (err) {
this.$emit("error", err);
} else {
this.$emit("publisherConnected", publisher);
}
});
};
if (this.session && this.session.isConnected()) {
// console.log("this.session && this.session.isConnected()")
publish();
// console.log(publisher)
}
if (this.session) {
console.log("this.session")
console.log(publisher)
this.session.on("sessionConnected", publish);
}
if(!this.session){
console.log("!this.session")
}
},
beforeDestroy: function(){
console.log("before destroy");
console.log(publisher)
console.log(publish)
//here is where I want to KEEEEEL!
// console.log(publisher)
// console.log(this.session)
}
};
</script>