diff --git a/package.json b/package.json index 72b89e21..f1488d46 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@d-id/client-sdk", "private": false, - "version": "1.1.31", + "version": "1.1.32", "type": "module", "description": "d-id client sdk", "repository": { diff --git a/src/services/streaming-manager/livekit-manager.ts b/src/services/streaming-manager/livekit-manager.ts index 15b4f9b2..3cd6eaed 100644 --- a/src/services/streaming-manager/livekit-manager.ts +++ b/src/services/streaming-manager/livekit-manager.ts @@ -70,11 +70,9 @@ export enum DataChannelTopic { export function handleInitError( error: unknown, log: (message?: any, ...optionalParams: any[]) => void, - callbacks: StreamingManagerOptions['callbacks'], - markInitialConnectionDone: () => void + callbacks: StreamingManagerOptions['callbacks'] ): void { log('Failed to connect to LiveKit room:', error); - markInitialConnectionDone(); callbacks.onConnectionStateChange?.(ConnectionState.Fail); callbacks.onError?.(error as Error, { sessionId: '' }); throw error; @@ -93,9 +91,10 @@ export async function createLiveKitStreamingManager { - isInitialConnection = false; - }); + handleInitError(error, log, callbacks); } if (!url || !token || !sessionId) { @@ -148,8 +145,6 @@ export async function createLiveKitStreamingManager { - isInitialConnection = false; - }); + handleInitError(error, log, callbacks); } analytics.enrich({ @@ -189,24 +180,18 @@ export async function createLiveKitStreamingManager { - callbacks.onConnectionStateChange?.(ConnectionState.Connected); - }); - } else { - callbacks.onConnectionStateChange?.(ConnectionState.Connected); - } break; case LiveKitConnectionState.Disconnected: log('LiveKit room disconnected'); isConnected = false; + hasEmittedConnected = false; callbacks.onConnectionStateChange?.(ConnectionState.Disconnected); break; case LiveKitConnectionState.Reconnecting: @@ -268,7 +253,14 @@ export async function createLiveKitStreamingManager; }) { if (statsSignal === StreamingState.Start && dataChannelSignal === StreamingState.Start) { + log('CALLBACK: onVideoStateChange(Start)'); onVideoStateChange?.(StreamingState.Start); } else if (statsSignal === StreamingState.Stop && dataChannelSignal === StreamingState.Stop) { + log('CALLBACK: onVideoStateChange(Stop)'); onVideoStateChange?.(StreamingState.Stop, report); } } @@ -82,16 +86,20 @@ function handleFluentStreamState({ onVideoStateChange, onAgentActivityStateChange, report, + log, }: { statsSignal?: StreamingState; dataChannelSignal?: StreamingState; onVideoStateChange: StreamingManagerOptions['callbacks']['onVideoStateChange']; onAgentActivityStateChange?: StreamingManagerOptions['callbacks']['onAgentActivityStateChange']; report?: VideoRTCStatsReport; + log: ReturnType; }) { if (statsSignal === StreamingState.Start) { + log('CALLBACK: onVideoStateChange(Start)'); onVideoStateChange?.(StreamingState.Start); } else if (statsSignal === StreamingState.Stop) { + log('CALLBACK: onVideoStateChange(Stop)'); onVideoStateChange?.(StreamingState.Stop, report); } @@ -109,6 +117,7 @@ function handleStreamState({ onAgentActivityStateChange, streamType, report, + log, }: { statsSignal?: StreamingState; dataChannelSignal?: StreamingState; @@ -116,9 +125,10 @@ function handleStreamState({ onAgentActivityStateChange?: StreamingManagerOptions['callbacks']['onAgentActivityStateChange']; streamType: StreamType; report?: VideoRTCStatsReport; + log: ReturnType; }) { if (streamType === StreamType.Legacy) { - handleLegacyStreamState({ statsSignal, dataChannelSignal, onVideoStateChange, report }); + handleLegacyStreamState({ statsSignal, dataChannelSignal, onVideoStateChange, report, log }); } else if (streamType === StreamType.Fluent) { handleFluentStreamState({ statsSignal, @@ -126,6 +136,7 @@ function handleStreamState({ onVideoStateChange, onAgentActivityStateChange, report, + log, }); } } @@ -182,6 +193,7 @@ export async function createWebRTCStreamingManager callbacks.onConnectivityStateChange?.(state) ); @@ -258,6 +271,7 @@ export async function createWebRTCStreamingManager { log('peerConnection.ontrack', event); + log('CALLBACK: onSrcObjectReady'); callbacks.onSrcObjectReady?.(event.streams[0]); };