From 251bc446fbff8f5abe18b91de66fd5519f075557 Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Tue, 12 Sep 2023 07:43:13 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=97=A5=E5=B8=B8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taoyao-client-media/src/Taoyao.js | 100 ++++++++++----------- taoyao-client-web/src/App.vue | 2 +- taoyao-client-web/src/components/Config.js | 7 +- taoyao-client-web/src/components/Taoyao.js | 95 +++++++++++--------- taoyao-signal-server/taoyao-server/pom.xml | 7 ++ 5 files changed, 115 insertions(+), 96 deletions(-) diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index 074d339..85dad13 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -866,24 +866,20 @@ class Taoyao { producer.observer.on("close", () => { if(room.producers.delete(producer.id)) { console.info("生产者关闭", producer.id, streamId); - me.push( - protocol.buildMessage("media::producer::close", { - roomId : roomId, - producerId: producer.id - }) - ); + me.push(protocol.buildMessage("media::producer::close", { + roomId, + producerId: producer.id + })); } else { console.info("生产者关闭(无效)", producer.id, streamId); } }); producer.observer.on("pause", () => { console.debug("生产者暂停", producer.id, streamId); - me.push( - protocol.buildMessage("media::producer::pause", { - roomId : roomId, - producerId: producer.id - }) - ); + me.push(protocol.buildMessage("media::producer::pause", { + roomId, + producerId: producer.id + })); }); producer.observer.on("resume", () => { console.debug("生产者恢复", producer.id, streamId); @@ -956,44 +952,6 @@ class Taoyao { } } - /** - * 暂停生产者信令 - * - * @param {*} message 消息 - * @param {*} body 消息主体 - */ - async mediaProducerPause(message, body) { - const me = this; - const { roomId, producerId } = body; - const room = me.rooms.get(roomId); - const producer = room?.producers.get(producerId); - if(producer) { - console.debug("暂停生产者", producerId); - await producer.pause(); - } else { - console.debug("暂停生产者无效(无效)", producerId); - } - } - - /** - * 恢复生产者信令 - * - * @param {*} message 消息 - * @param {*} body 消息主体 - */ - async mediaProducerResume(message, body) { - const me = this; - const { roomId, producerId } = body; - const room = me.rooms.get(roomId); - const producer = room?.producers.get(producerId); - if(producer) { - console.debug("恢复生产者", producerId); - await producer.resume(); - } else { - console.debug("恢复生产者(无效)", producerId); - } - } - /** * 消费媒体信令 * @@ -1545,6 +1503,48 @@ class Taoyao { } } + /** + * 暂停生产者信令 + * + * @param {*} message 信令消息 + * @param {*} body 消息主体 + */ + async mediaProducerPause(message, body) { + const { + roomId, + producerId + } = body; + const room = this.rooms.get(roomId); + const producer = room?.producers.get(producerId); + if(!producer) { + console.debug("暂停生产者(无效生产者)", roomId, producerId); + return; + } + console.debug("暂停生产者", producerId); + await producer.pause(); + } + + /** + * 恢复生产者信令 + * + * @param {*} message 信令消息 + * @param {*} body 消息主体 + */ + async mediaProducerResume(message, body) { + const { + roomId, + producerId + } = body; + const room = this.rooms.get(roomId); + const producer = room?.producers.get(producerId); + if(!producer) { + console.debug("恢复生产者(无效生产者)", roomId, producerId); + return; + } + console.debug("恢复生产者", producerId); + await producer.resume(); + } + /** * 查询生产者状态信令 * diff --git a/taoyao-client-web/src/App.vue b/taoyao-client-web/src/App.vue index b4b4591..2fbe32a 100644 --- a/taoyao-client-web/src/App.vue +++ b/taoyao-client-web/src/App.vue @@ -214,7 +214,7 @@ export default { switch (signal) { case "media::track" : const { clientId, track } = body; - console.info("新增媒体轨道", clientId, track); + console.debug("新增媒体轨道", clientId, track); break; case "client::config" : this.roomVisible = true; diff --git a/taoyao-client-web/src/components/Config.js b/taoyao-client-web/src/components/Config.js index e851fe9..3842c98 100644 --- a/taoyao-client-web/src/components/Config.js +++ b/taoyao-client-web/src/components/Config.js @@ -2,13 +2,18 @@ * 配置 */ const config = { + // 媒体配置 + media: { + // 是否预览共享文件 + filePreview: true + }, // 信令配置 signal: { // 信令版本 version : "1.0.0", // 终端类型 clientType: "WEB", - } + }, } /** * 音频默认配置 diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index d7fe98a..6ef23df 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -957,8 +957,11 @@ class Taoyao extends RemoteClient { this.fileVideo.muted = true; this.fileVideo.controls = true; this.fileVideo.src = URL.createObjectURL(input.files[0]); - this.fileVideo.style = "position:fixed;top:1rem;left:1rem;width:128px;border:2px solid #FFF;"; - // this.fileVideo.style.display = "none"; + if(config.media.filePreview) { + this.fileVideo.style = "position:fixed;top:1rem;left:1rem;width:128px;border:2px solid #FFF;"; + } else { + this.fileVideo.style.display = "none"; + } document.body.appendChild(this.fileVideo); // 开始播放不然不能采集 await this.fileVideo.play(); @@ -1860,48 +1863,6 @@ class Taoyao extends RemoteClient { } } - /** - * 暂停生产者信令 - * - * @param {*} producerId 生产者ID - */ - mediaProducerPause(producerId) { - const me = this; - const producer = me.getProducer(producerId); - if(producer) { - if(producer.paused) { - return; - } - console.debug("暂停生产者", producerId); - me.push(protocol.buildMessage("media::producer::pause", { - roomId : me.roomId, - producerId: producerId, - })); - } else { - console.debug("暂停生产者无效", producerId); - } - } - - /** - * 暂停生产者信令 - * - * @param {*} message 消息 - */ - async defaultMediaProducerPause(message) { - const me = this; - const { - roomId, - producerId - } = message.body; - const producer = me.getProducer(producerId); - if (producer) { - console.debug("暂停生产者", producerId); - producer.pause(); - } else { - console.debug("暂停生产者无效", producerId); - } - } - /** * 消费媒体信令 * @@ -2469,6 +2430,50 @@ class Taoyao extends RemoteClient { } } + /** + * 暂停生产者信令 + * + * @param {*} producerId 生产者ID + */ + mediaProducerPause(producerId) { + const producer = this.getProducer(producerId); + if(!producer) { + console.debug("暂停生产者(生产者无效)", producerId); + return; + } + if(producer.paused) { + console.debug("暂停生产者(生产者已经暂停)", producerId); + return; + } + console.debug("暂停生产者", producerId); + this.push(protocol.buildMessage("media::producer::pause", { + producerId, + roomId: this.roomId, + })); + } + + /** + * 暂停生产者信令 + * + * @param {*} message 消息 + */ + async defaultMediaProducerPause(message) { + const { + producerId + } = message.body; + const producer = this.getProducer(producerId); + if (!producer) { + console.debug("暂停生产者(生产者无效)", producerId); + return; + } + if(producer.paused) { + console.debug("暂停生产者(生产者已经暂停)", producerId); + return; + } + console.debug("暂停生产者", producerId); + producer.pause(); + } + /** * 恢复生产者信令 * @@ -3696,6 +3701,7 @@ class Taoyao extends RemoteClient { await client.close(); }); me.remoteClients.clear(); + me.closeFileVideo(); } /** @@ -3709,6 +3715,7 @@ class Taoyao extends RemoteClient { console.debug("关闭会话", sessionId); }); me.sessionClients.clear(); + me.closeFileVideo(); } /** diff --git a/taoyao-signal-server/taoyao-server/pom.xml b/taoyao-signal-server/taoyao-server/pom.xml index 06e6f2a..d071198 100644 --- a/taoyao-signal-server/taoyao-server/pom.xml +++ b/taoyao-signal-server/taoyao-server/pom.xml @@ -47,6 +47,13 @@ +