@livedigital/client 2.43.0 → 2.44.0-audio-observer.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ export declare const CHANNEL_EVENTS: {
8
8
  activityConfirmationAcquired: string;
9
9
  activityConfirmationRequired: string;
10
10
  activityConfirmationExpired: string;
11
+ getAudioObserverProducer: string;
11
12
  };
12
13
  export declare const CLIENT_EVENTS: {
13
14
  channelEvent: string;
@@ -20,6 +21,10 @@ export declare const CLIENT_EVENTS: {
20
21
  devicesListUpdated: string;
21
22
  transportConnectionTimeout: string;
22
23
  trackPublishingFailed: string;
24
+ activeSpeakerChanged: string;
25
+ };
26
+ export declare const TRACK_EVENTS: {
27
+ volumeChanged: string;
23
28
  };
24
29
  export declare const INTERNAL_CLIENT_EVENTS: {
25
30
  trackProduced: string;
@@ -61,6 +66,7 @@ export declare const MEDIASOUP_EVENTS: {
61
66
  producerSetMaxSpatialLayer: string;
62
67
  producerRequestMaxSpatialLayer: string;
63
68
  createConsumer: string;
69
+ createDataConsumer: string;
64
70
  closeConsumer: string;
65
71
  pauseConsumer: string;
66
72
  resumeConsumer: string;
@@ -5,12 +5,14 @@ import Media from './media';
5
5
  import ChannelEventHandler from './handlers/ChannelEventHandler';
6
6
  import MediaSoupEventHandler from './handlers/MediaSoupEventHandler';
7
7
  import { CreateIssueDetectorParams, CreateMediaParams, CreateMediaSoupEventHandlerParams, CreateNetworkParams, CreateSystemParams, EngineDependenciesFactory } from '../types/engine';
8
+ import ChannelAudioObserverEventHandler from './handlers/ChannelAudioObserverEventHandler';
8
9
  declare class DefaultEngineDependenciesFactory implements EngineDependenciesFactory {
9
10
  createSystem(params: CreateSystemParams): System;
10
11
  createMedia(params: CreateMediaParams): Media;
11
12
  createNetwork(params: CreateNetworkParams): Network;
12
13
  createChannelEventHandler(params: CreateMediaSoupEventHandlerParams): ChannelEventHandler;
13
14
  createMediaSoupEventHandler(params: CreateMediaSoupEventHandlerParams): MediaSoupEventHandler;
15
+ createAudioObserverEventHandler(params: CreateMediaSoupEventHandlerParams): ChannelAudioObserverEventHandler;
14
16
  createIssueDetector(params: CreateIssueDetectorParams): WebRTCIssueDetector;
15
17
  }
16
18
  export default DefaultEngineDependenciesFactory;
@@ -0,0 +1,17 @@
1
+ import { LogMessageHandler } from '../../types/common';
2
+ import Engine from '../index';
3
+ declare class ChannelAudioObserverEventHandler {
4
+ private readonly engine;
5
+ private readonly logger;
6
+ constructor(params: {
7
+ engine: Engine;
8
+ onLogMessage?: LogMessageHandler;
9
+ });
10
+ handle(data: string): void;
11
+ private handleDominantSpeaker;
12
+ private handlePeerVolumes;
13
+ private handleSilence;
14
+ private static validateEventPayload;
15
+ static throwInvalidPayload(): void;
16
+ }
17
+ export default ChannelAudioObserverEventHandler;
@@ -27,6 +27,7 @@ declare class Engine {
27
27
  private readonly peersRepository;
28
28
  private channelEventsHandler;
29
29
  private mediaSoupEventsHandler;
30
+ private channelAudioObserverEventHandler;
30
31
  private initialized;
31
32
  private isJoined;
32
33
  private app?;
@@ -34,14 +35,18 @@ declare class Engine {
34
35
  private isChannelJoining;
35
36
  private readonly logger;
36
37
  private webRtcIssueDetector?;
38
+ private audioObserver?;
39
+ private activeSpeakerPeer?;
37
40
  constructor(params: EngineParams);
38
41
  private initialize;
39
42
  release(): Promise<void>;
40
43
  private watchSocketState;
44
+ get activeSpeaker(): Peer | undefined;
41
45
  get peers(): Peer[];
42
46
  get hostPeers(): Peer[];
43
47
  get audiencePeers(): Peer[];
44
48
  get mySocketId(): string | undefined;
49
+ getPeerById(id: string): Peer | undefined;
45
50
  confirmActivity(): Promise<void>;
46
51
  join(params: JoinChannelParams): Promise<void>;
47
52
  loadPeers(role?: Role): Promise<void>;
@@ -55,6 +60,7 @@ declare class Engine {
55
60
  get channelId(): string | undefined;
56
61
  get appId(): string | undefined;
57
62
  get canUseNoiseSuppression(): boolean;
63
+ setActiveSpeakerPeer(peer?: Peer): void;
58
64
  private connectToSocketServerWithRetry;
59
65
  private connectToSocketServer;
60
66
  private getAvailableNode;
@@ -66,5 +72,6 @@ declare class Engine {
66
72
  private get myPeer();
67
73
  private watchClientEvents;
68
74
  private createSelfPeerTrack;
75
+ private createAudioObserver;
69
76
  }
70
77
  export default Engine;
@@ -19,6 +19,7 @@ declare class PeerTrack {
19
19
  consumer?: PeerConsumer;
20
20
  readonly observer: EnhancedEventEmitter;
21
21
  constructor(payload: PeerTrackConstructor);
22
+ get volume(): number;
22
23
  get isRemote(): boolean;
23
24
  get mediaStreamTrack(): MediaStreamTrack;
24
25
  get kind(): MediaKind;
@@ -42,6 +43,7 @@ declare class PeerTrack {
42
43
  private getOutboundStats;
43
44
  private requestMaxSpatialLayer;
44
45
  private checkConsumerState;
46
+ setVolume(value: number): void;
45
47
  private closeConsumer;
46
48
  private restartConsumer;
47
49
  private isInboundRTPStreamActive;
@@ -1,8 +1,8 @@
1
1
  import { IceParameters, Transport } from 'mediasoup-client/lib/Transport';
2
2
  import { Device } from 'mediasoup-client';
3
- import { Consumer } from 'mediasoup-client/lib/Consumer';
3
+ import { DataConsumer } from 'mediasoup-client/lib/DataConsumer';
4
4
  import SocketIO from './Socket';
5
- import { CreateConsumerPayload, LogLevel, LogMessageHandler, SocketResponse, TransportsStateInfo, UpdatePeerAppDataPayload } from '../../types/common';
5
+ import { CreateConsumerPayload, CreateConsumerResponse, LogLevel, LogMessageHandler, SocketResponse, TransportsStateInfo, UpdatePeerAppDataPayload, CreateDataConsumerPayload } from '../../types/common';
6
6
  import LoadBalancerApiClient from './LoadBalancerClient';
7
7
  export declare type NetworkParams = {
8
8
  socketClient: SocketIO;
@@ -25,14 +25,13 @@ declare class Network {
25
25
  createRecvTransport(mediasoupDevice: Device): Promise<void>;
26
26
  getIceParameters(transport: Transport): Promise<IceParameters>;
27
27
  restartIce(transport: Transport): Promise<void>;
28
- createConsumer({ producerId, rtpCapabilities, appId, channelId, producerPeerId, }: CreateConsumerPayload): Promise<{
29
- consumer: Consumer;
30
- isProducerPaused: boolean;
31
- }>;
28
+ createConsumer({ producerId, rtpCapabilities, appId, channelId, producerPeerId, }: CreateConsumerPayload): Promise<CreateConsumerResponse>;
29
+ createDataConsumer({ producerId, appId, channelId, }: CreateDataConsumerPayload): Promise<DataConsumer>;
32
30
  closeRemoteConsumer(consumerId: string): Promise<SocketResponse>;
33
31
  resumeRemoteConsumer(consumerId: string): Promise<SocketResponse>;
34
32
  pauseRemoteConsumer(consumerId: string): Promise<SocketResponse>;
35
33
  updatePeerAppData({ peerId, appData }: UpdatePeerAppDataPayload): Promise<SocketResponse>;
34
+ getAudioObserverProducer(): Promise<SocketResponse>;
36
35
  getTransportsStateInfo(): Promise<TransportsStateInfo>;
37
36
  private getParsedTransportStats;
38
37
  }
@@ -0,0 +1,5 @@
1
+ import LivedigitalSDKError from './LivedigitalSDKError';
2
+ declare class InvalidPayloadError extends LivedigitalSDKError {
3
+ constructor(msg?: string, errorCode?: string);
4
+ }
5
+ export default InvalidPayloadError;
@@ -0,0 +1,5 @@
1
+ import LivedigitalSDKError from './LivedigitalSDKError';
2
+ declare class NeedJoinFirstError extends LivedigitalSDKError {
3
+ constructor(msg?: string, errorCode?: string);
4
+ }
5
+ export default NeedJoinFirstError;