[mirotalksfu] - improvements
هذا الالتزام موجود في:
@@ -23,12 +23,10 @@ module.exports = class Peer {
|
|||||||
updatePeerInfo(data) {
|
updatePeerInfo(data) {
|
||||||
log.debug('Update peer info', data);
|
log.debug('Update peer info', data);
|
||||||
switch (data.type) {
|
switch (data.type) {
|
||||||
case 'audio':
|
|
||||||
case 'audioType':
|
case 'audioType':
|
||||||
this.peer_info.peer_audio = data.status;
|
this.peer_info.peer_audio = data.status;
|
||||||
this.peer_audio = data.status;
|
this.peer_audio = data.status;
|
||||||
break;
|
break;
|
||||||
case 'video':
|
|
||||||
case 'videoType':
|
case 'videoType':
|
||||||
this.peer_info.peer_video = data.status;
|
this.peer_info.peer_video = data.status;
|
||||||
this.peer_video = data.status;
|
this.peer_video = data.status;
|
||||||
|
|||||||
@@ -502,16 +502,6 @@ io.on('connection', (socket) => {
|
|||||||
|
|
||||||
log.debug('Peer action', data);
|
log.debug('Peer action', data);
|
||||||
|
|
||||||
if (data.action == 'screenStart') {
|
|
||||||
let screenData = {
|
|
||||||
peer_name: getPeerName(),
|
|
||||||
peer_id: socket.id,
|
|
||||||
type: 'screenType',
|
|
||||||
status: true,
|
|
||||||
};
|
|
||||||
roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(screenData);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.broadcast) {
|
if (data.broadcast) {
|
||||||
roomList.get(socket.room_id).broadCast(data.peer_id, 'peerAction', data);
|
roomList.get(socket.room_id).broadCast(data.peer_id, 'peerAction', data);
|
||||||
} else {
|
} else {
|
||||||
@@ -661,7 +651,7 @@ io.on('connection', (socket) => {
|
|||||||
callback('success');
|
callback('success');
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('produce', async ({ kind, rtpParameters, producerTransportId }, callback) => {
|
socket.on('produce', async ({ producerTransportId, kind, appData, rtpParameters }, callback) => {
|
||||||
if (!roomList.has(socket.room_id)) {
|
if (!roomList.has(socket.room_id)) {
|
||||||
return callback({ error: 'Room not found' });
|
return callback({ error: 'Room not found' });
|
||||||
}
|
}
|
||||||
@@ -672,7 +662,8 @@ io.on('connection', (socket) => {
|
|||||||
let data = {
|
let data = {
|
||||||
peer_name: peer_name,
|
peer_name: peer_name,
|
||||||
peer_id: socket.id,
|
peer_id: socket.id,
|
||||||
type: kind,
|
kind: kind,
|
||||||
|
type: appData.mediaType,
|
||||||
status: true,
|
status: true,
|
||||||
};
|
};
|
||||||
await roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(data);
|
await roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(data);
|
||||||
@@ -683,6 +674,7 @@ io.on('connection', (socket) => {
|
|||||||
|
|
||||||
log.debug('Produce', {
|
log.debug('Produce', {
|
||||||
kind: kind,
|
kind: kind,
|
||||||
|
type: appData.mediaType,
|
||||||
peer_name: peer_name,
|
peer_name: peer_name,
|
||||||
peer_id: socket.id,
|
peer_id: socket.id,
|
||||||
producer_id: producer_id,
|
producer_id: producer_id,
|
||||||
|
|||||||
@@ -869,13 +869,11 @@ function handleButtons() {
|
|||||||
setAudioButtonsDisabled(true);
|
setAudioButtonsDisabled(true);
|
||||||
if (!isEnumerateAudioDevices) initEnumerateAudioDevices();
|
if (!isEnumerateAudioDevices) initEnumerateAudioDevices();
|
||||||
rc.produce(RoomClient.mediaType.audio, microphoneSelect.value);
|
rc.produce(RoomClient.mediaType.audio, microphoneSelect.value);
|
||||||
rc.updatePeerInfo(peer_name, rc.peer_id, 'audio', true);
|
|
||||||
// rc.resumeProducer(RoomClient.mediaType.audio);
|
// rc.resumeProducer(RoomClient.mediaType.audio);
|
||||||
};
|
};
|
||||||
stopAudioButton.onclick = () => {
|
stopAudioButton.onclick = () => {
|
||||||
setAudioButtonsDisabled(true);
|
setAudioButtonsDisabled(true);
|
||||||
rc.closeProducer(RoomClient.mediaType.audio);
|
rc.closeProducer(RoomClient.mediaType.audio);
|
||||||
rc.updatePeerInfo(peer_name, rc.peer_id, 'audio', false);
|
|
||||||
// rc.pauseProducer(RoomClient.mediaType.audio);
|
// rc.pauseProducer(RoomClient.mediaType.audio);
|
||||||
};
|
};
|
||||||
startVideoButton.onclick = () => {
|
startVideoButton.onclick = () => {
|
||||||
|
|||||||
@@ -355,11 +355,17 @@ class RoomClient {
|
|||||||
|
|
||||||
this.producerTransport.on(
|
this.producerTransport.on(
|
||||||
'produce',
|
'produce',
|
||||||
async function ({ kind, rtpParameters }, callback, errback) {
|
async function ({ kind, appData, rtpParameters }, callback, errback) {
|
||||||
|
console.log('Going to produce', {
|
||||||
|
kind: kind,
|
||||||
|
appData: appData,
|
||||||
|
rtpParameters: rtpParameters,
|
||||||
|
});
|
||||||
try {
|
try {
|
||||||
const { producer_id } = await this.socket.request('produce', {
|
const { producer_id } = await this.socket.request('produce', {
|
||||||
producerTransportId: this.producerTransport.id,
|
producerTransportId: this.producerTransport.id,
|
||||||
kind,
|
kind,
|
||||||
|
appData,
|
||||||
rtpParameters,
|
rtpParameters,
|
||||||
});
|
});
|
||||||
callback({
|
callback({
|
||||||
@@ -703,6 +709,9 @@ class RoomClient {
|
|||||||
const track = audio ? stream.getAudioTracks()[0] : stream.getVideoTracks()[0];
|
const track = audio ? stream.getAudioTracks()[0] : stream.getVideoTracks()[0];
|
||||||
const params = {
|
const params = {
|
||||||
track,
|
track,
|
||||||
|
appData: {
|
||||||
|
mediaType: type,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!audio && !screen) {
|
if (!audio && !screen) {
|
||||||
@@ -848,7 +857,7 @@ class RoomClient {
|
|||||||
|
|
||||||
getScreenConstraints() {
|
getScreenConstraints() {
|
||||||
return {
|
return {
|
||||||
audio: false,
|
audio: true,
|
||||||
video: {
|
video: {
|
||||||
frameRate: {
|
frameRate: {
|
||||||
ideal: 15,
|
ideal: 15,
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم