diff --git a/packages/room/peer/peer.js b/packages/room/peer/peer.js index 0f5dc0f9..f5c391c0 100644 --- a/packages/room/peer/peer.js +++ b/packages/room/peer/peer.js @@ -806,10 +806,13 @@ export const createPeer = ({ api, createStream, event, streams, config }) => { } internalChannel.addEventListener('message', (event) => { - const data = JSON.parse(event.data) + const jsonData = JSON.parse(event.data) - if (data.type === 'vad_started' || data.type === 'vad_ended') { - this._onVoiceActivity(data) + if ( + jsonData.type === 'vad_started' || + jsonData.type === 'vad_ended' + ) { + this._onVoiceActivity(jsonData.data) } }) } diff --git a/packages/room/stream/stream.js b/packages/room/stream/stream.js index 9cc4df10..9205bc50 100644 --- a/packages/room/stream/stream.js +++ b/packages/room/stream/stream.js @@ -7,6 +7,7 @@ export const createStream = () => { source mediaStream audioLevel + lastVoiceActivity /** * @param {import('./stream-types.js').RoomStreamType.StreamParameters} streamParameters @@ -20,6 +21,7 @@ export const createStream = () => { this.source = source this.mediaStream = mediaStream this.audioLevel = 0 + this.lastVoiceActivity = 0 } /** @@ -49,6 +51,7 @@ export const createStream = () => { for (const level of activity.audioLevels) { this.audioLevel = level.audioLevel this.#triggerVoiceActivityEvent(this.audioLevel) + this.lastVoiceActivity = Date.now() } } else { this.audioLevel = 0 @@ -79,19 +82,7 @@ export const createStream = () => { createInstance: (data) => { const stream = new Stream(data) - return Object.freeze({ - id: stream.id, - clientId: stream.clientId, - name: stream.name, - origin: stream.origin, - source: stream.source, - mediaStream: stream.mediaStream, - audioLevel: 0, - replaceTrack: stream.replaceTrack, - addVoiceActivity: stream.addVoiceActivity, - addEventListener: stream.addEventListener, - removeEventListener: stream.removeEventListener, - }) + return stream }, } }