@byteplus/rtc 4.54.2 → 4.55.0
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.
- package/README.md +3 -3
- package/extension-beauty/index.d.ts +6 -0
- package/extension-beauty/index.js +1 -1
- package/extension-beauty/index.umd.js +1 -1
- package/index.d.ts +446 -183
- package/index.esm.min.js +2 -2
- package/index.min.js +2 -2
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -26,7 +26,8 @@ export interface IAudioMixingManager {
|
|
|
26
26
|
* @notes + If you have already loaded the sound effect into memory through [preloadAudioMixing](#preloadaudiomixing), make sure that the ID here is the same as the ID set by [preloadAudioMixing](#preloadaudiomixing).
|
|
27
27
|
* + After you start playing the audio file and mixing, you can call the [stopAudioMixing](#stopaudiomixing) method to stop playing the audio file.
|
|
28
28
|
* + The mixing data of this method comes from an external file, while the mixing data of [enableAudioMixingBuffer](#enableaudiomixingbuffer) comes from an external cache and the audio format is PCM. These two mixing methods can coexist.
|
|
29
|
-
* @
|
|
29
|
+
* @group Audio Mixing
|
|
30
|
+
* @order 5
|
|
30
31
|
*/
|
|
31
32
|
startAudioMixing: (id: number, filePath: string, options: MixOption) => Promise<void>;
|
|
32
33
|
|
|
@@ -35,7 +36,8 @@ export interface IAudioMixingManager {
|
|
|
35
36
|
* @param id ID of the mixing
|
|
36
37
|
* @notes + After calling [startAudioMixing](#startaudiomixing) method to start playing audio files and mixes, you can call this method to stop playing audio files and mixes.
|
|
37
38
|
* + After calling this method to stop playing the audio file, the audio file will be automatically uninstalled.
|
|
38
|
-
* @
|
|
39
|
+
* @group Audio Mixing
|
|
40
|
+
* @order 6
|
|
39
41
|
*/
|
|
40
42
|
stopAudioMixing: (id: number) => void;
|
|
41
43
|
|
|
@@ -44,7 +46,8 @@ export interface IAudioMixingManager {
|
|
|
44
46
|
* @param id ID of the mixing
|
|
45
47
|
* @notes + After calling [startAudioMixing](#startaudiomixing) method to start playing audio files and mixes, you can call this method to pause playing audio files and mixes.
|
|
46
48
|
* + After calling this method to pause playing audio files and mixing, you can call the [resumeAudioMixing](#resumeaudiomixing) method to resume playing and mixing.
|
|
47
|
-
* @
|
|
49
|
+
* @group Audio Mixing
|
|
50
|
+
* @order 7
|
|
48
51
|
*/
|
|
49
52
|
pauseAudioMixing: (id: number) => void;
|
|
50
53
|
|
|
@@ -52,7 +55,8 @@ export interface IAudioMixingManager {
|
|
|
52
55
|
* @brief Resume playing audio files and mixing
|
|
53
56
|
* @param id Mixing ID
|
|
54
57
|
* @notes After calling the [pauseAudioMixing](#pauseaudiomixing) method to pause playing audio files and mixing, you can resume playing and mixing by calling this method.
|
|
55
|
-
* @
|
|
58
|
+
* @group Audio Mixing
|
|
59
|
+
* @order 8
|
|
56
60
|
*/
|
|
57
61
|
resumeAudioMixing: (id: number) => void;
|
|
58
62
|
|
|
@@ -67,14 +71,16 @@ export interface IAudioMixingManager {
|
|
|
67
71
|
* @notes + When you need to play an audio file frequently, call this method to preload the file. When playing, you can only load the file once to reduce CPU usage.
|
|
68
72
|
* + This method pre-loads the specified audio file, and only calling [startAudioMixing](#startaudiomixing) API can you start playing the specified audio file.
|
|
69
73
|
* + The specified audio file preloaded by calling this method can be unloaded through [unloadAudioMixing](#unloadaudiomixing).
|
|
70
|
-
* @
|
|
74
|
+
* @group Audio Mixing
|
|
75
|
+
* @order 9
|
|
71
76
|
*/
|
|
72
77
|
preloadAudioMixing: (id: number, filePath: string) => Promise<void>;
|
|
73
78
|
|
|
74
79
|
/**
|
|
75
80
|
* @brief Uninstall the specified audio file
|
|
76
81
|
* @param id Mix ID
|
|
77
|
-
* @
|
|
82
|
+
* @group Audio Mixing
|
|
83
|
+
* @order 10
|
|
78
84
|
*/
|
|
79
85
|
unloadAudioMixing: (id: number) => void;
|
|
80
86
|
|
|
@@ -85,7 +91,8 @@ export interface IAudioMixingManager {
|
|
|
85
91
|
* + 0: Mute
|
|
86
92
|
* + 100: Original volume
|
|
87
93
|
* + 400: Maximum volume (with overflow protection)
|
|
88
|
-
* @
|
|
94
|
+
* @group Audio Mixing
|
|
95
|
+
* @order 16
|
|
89
96
|
*/
|
|
90
97
|
setAudioMixingVolume: (id: number, volume: number) => void;
|
|
91
98
|
|
|
@@ -94,7 +101,8 @@ export interface IAudioMixingManager {
|
|
|
94
101
|
* @param id Audio mix id
|
|
95
102
|
* @return + `0`: Failure
|
|
96
103
|
* + `>0`: Successful. Volume
|
|
97
|
-
* @
|
|
104
|
+
* @group Audio Mixing
|
|
105
|
+
* @order 15
|
|
98
106
|
*/
|
|
99
107
|
getAudioMixingVolume: (id: number) => number;
|
|
100
108
|
|
|
@@ -104,7 +112,8 @@ export interface IAudioMixingManager {
|
|
|
104
112
|
* @return + `> 0`: Success, audio file duration, in milliseconds.
|
|
105
113
|
* + `< 0`: Failure
|
|
106
114
|
* @notes Before calling this method to obtain the length of the audio file, you need to call [preloadAudioMixing](#preloadaudiomixing) or [startAudioMixing](#startaudiomixing).
|
|
107
|
-
* @
|
|
115
|
+
* @group Audio Mixing
|
|
116
|
+
* @order 20
|
|
108
117
|
*/
|
|
109
118
|
getAudioMixingDuration: (id: number) => number;
|
|
110
119
|
|
|
@@ -114,7 +123,8 @@ export interface IAudioMixingManager {
|
|
|
114
123
|
* @return + `> 0`: Success, audio file playback progress, in milliseconds.
|
|
115
124
|
* + `< 0`: Failed
|
|
116
125
|
* @notes Before calling this method to get the audio file playback progress, you need to call [startAudioMixing](#startaudiomixing) to start playing the audio file.
|
|
117
|
-
* @
|
|
126
|
+
* @group Audio Mixing
|
|
127
|
+
* @order 25
|
|
118
128
|
*/
|
|
119
129
|
getAudioMixingCurrentPosition: (id: number) => number;
|
|
120
130
|
|
|
@@ -124,8 +134,9 @@ export interface IAudioMixingManager {
|
|
|
124
134
|
* @param position The starting playback position of the audio file in milliseconds.
|
|
125
135
|
* Call [getAudioMixingDuration](#getaudiomixingduration) to get the duration of the audio file. The value of `position` must not be greater than the duration of the audio file.
|
|
126
136
|
* @notes + This method allows you to play an audio file from a specified position as appropriate, without having to play an audio file in its entirety from the beginning to finish.
|
|
127
|
-
*
|
|
128
|
-
* @
|
|
137
|
+
* + Before calling this method to set the playback position of the audio file, you need to call [startAudioMixing](#startaudiomixing) to start playing the audio file.
|
|
138
|
+
* @group Audio Mixing
|
|
139
|
+
* @order 26
|
|
129
140
|
*/
|
|
130
141
|
setAudioMixingPosition: (id: number, position: number) => void;
|
|
131
142
|
|
|
@@ -136,13 +147,15 @@ export interface IAudioMixingManager {
|
|
|
136
147
|
* Whether the PCM data is mixed locally and sent to the remotes.
|
|
137
148
|
* @notes + After this API, you must call [pushAudioMixingBuffer](#pushaudiomixingbuffer) to start mixing.
|
|
138
149
|
* + To end PCM mixing, use [disableAudioMixingBuffer](#disableaudiomixingbuffer).
|
|
139
|
-
* @
|
|
150
|
+
* @group Audio Mixing
|
|
151
|
+
* @order 30
|
|
140
152
|
*/
|
|
141
153
|
enableAudioMixingBuffer: (type: AudioMixingType) => void;
|
|
142
154
|
|
|
143
155
|
/**
|
|
144
156
|
* @brief Disable PCM mixing.
|
|
145
|
-
* @
|
|
157
|
+
* @group Audio Mixing
|
|
158
|
+
* @order 31
|
|
146
159
|
*/
|
|
147
160
|
disableAudioMixingBuffer: () => void;
|
|
148
161
|
|
|
@@ -150,7 +163,8 @@ export interface IAudioMixingManager {
|
|
|
150
163
|
* @brief Push PCM audio frame data for mixing
|
|
151
164
|
* @param buffer Refer to [Browser documentation](https://developer.mozilla.org/en-US/docs/Web/API/AudioBuffer)
|
|
152
165
|
* @notes Before calling this method, you must start the external audio stream mixing through [enableAudioMixingBuffer](#enableaudiomixingbuffer).
|
|
153
|
-
* @
|
|
166
|
+
* @group Audio Mixing
|
|
167
|
+
* @order 32
|
|
154
168
|
*/
|
|
155
169
|
pushAudioMixingBuffer: (buffer: AudioBuffer) => void;
|
|
156
170
|
}
|
|
@@ -666,6 +680,7 @@ declare enum ErrorCode {
|
|
|
666
680
|
RECONNECT_FAILED = "RECONNECT_FAILED",
|
|
667
681
|
|
|
668
682
|
/**
|
|
683
|
+
* @hidden
|
|
669
684
|
* @brief Subtitles are already on. There is no need to call [startSubtitle](104478#startsubtitle) again.
|
|
670
685
|
*/
|
|
671
686
|
SUBTITLE_ALREADY_ON = "SUBTITLE_ALREADY_ON",
|
|
@@ -677,21 +692,25 @@ declare enum ErrorCode {
|
|
|
677
692
|
SUBTITLE_NOT_TURNED_ON = "SUBTITLE_NOT_TURNED_ON",
|
|
678
693
|
|
|
679
694
|
/**
|
|
695
|
+
* @hidden
|
|
680
696
|
* @brief Errors occurred concerning cloud media processing. Please contact the technical support.
|
|
681
697
|
*/
|
|
682
698
|
SUBTITLE_ERR_POSTPROCESS = "SUBTITLE_ERR_POSTPROCESS",
|
|
683
699
|
|
|
684
700
|
/**
|
|
701
|
+
* @hidden
|
|
685
702
|
* @brief Failed to connect to the thrid-party service. Please contact the technical support.
|
|
686
703
|
*/
|
|
687
704
|
SUBTITLE_ERR_CONNECTION_ERROR = "SUBTITLE_ERR_CONNECTION_ERROR",
|
|
688
705
|
|
|
689
706
|
/**
|
|
707
|
+
* @hidden
|
|
690
708
|
* @brief Cloud media processing is timeout. Please contact the technical support.
|
|
691
709
|
*/
|
|
692
710
|
SUBTITLE_ERR_PROCESS_ERROR = "SUBTITLE_ERR_PROCESS_ERROR",
|
|
693
711
|
|
|
694
712
|
/**
|
|
713
|
+
* @hidden
|
|
695
714
|
* @brief The client side failed to identity error codes sent by cloud media processing. Please contact the technical support.
|
|
696
715
|
*/
|
|
697
716
|
SUBTITLE_ERR_UNKNOWN = "SUBTITLE_ERR_UNKNOWN",
|
|
@@ -1931,28 +1950,32 @@ export interface IEngineEvents {
|
|
|
1931
1950
|
/**
|
|
1932
1951
|
* @brief Player event
|
|
1933
1952
|
* @param event
|
|
1934
|
-
* @
|
|
1953
|
+
* @group Video Management
|
|
1954
|
+
* @order 65
|
|
1935
1955
|
*/
|
|
1936
1956
|
[EngineEventsTypes.onPlayerEvent]: (event: PlayerEvent) => void;
|
|
1937
1957
|
|
|
1938
1958
|
/**
|
|
1939
1959
|
* @brief Callback for a remote visible user joining the room, or an invisible user in the room switching to visible.
|
|
1940
1960
|
* @param event
|
|
1941
|
-
* @
|
|
1961
|
+
* @group Room Management
|
|
1962
|
+
* @order 30
|
|
1942
1963
|
*/
|
|
1943
1964
|
[EngineEventsTypes.onUserJoined]: (event: onUserJoinedEvent) => void;
|
|
1944
1965
|
|
|
1945
1966
|
/**
|
|
1946
1967
|
* @brief Callback for a remote visible user leaving the room, or a visible user in the room switching to invisible.
|
|
1947
1968
|
* @param event
|
|
1948
|
-
* @
|
|
1969
|
+
* @group Room Management
|
|
1970
|
+
* @order 31
|
|
1949
1971
|
*/
|
|
1950
1972
|
[EngineEventsTypes.onUserLeave]: (event: onUserLeaveEvent) => void;
|
|
1951
1973
|
|
|
1952
1974
|
/**
|
|
1953
1975
|
* @brief Connection state changed
|
|
1954
1976
|
* @param event
|
|
1955
|
-
* @
|
|
1977
|
+
* @group Room Management
|
|
1978
|
+
* @order 35
|
|
1956
1979
|
*/
|
|
1957
1980
|
[EngineEventsTypes.onConnectionStateChanged]: (event: ConnectionStateChangeEvent) => void;
|
|
1958
1981
|
|
|
@@ -1960,13 +1983,14 @@ export interface IEngineEvents {
|
|
|
1960
1983
|
* @hidden
|
|
1961
1984
|
* @brief Vendor ICE connection state changed
|
|
1962
1985
|
* @param event
|
|
1963
|
-
* @region Network Event
|
|
1964
1986
|
*/
|
|
1965
1987
|
[EngineEventsTypes.onVendorConnectionStateChanged]: (event: VendorConnectionStateChangeEvent) => void;
|
|
1966
1988
|
|
|
1967
1989
|
/**
|
|
1968
1990
|
* @brief Callback on new media streams captured by camera/microphone in the room.
|
|
1969
1991
|
* @notes You will receive this callback after a remote user successfully publishes media streams captured by camera/microphone in the room with [publishStream](104478#publishstream). Then you can choose whether to call [subscribeStream](104478#subscribestream) to subscribe to the streams or not.
|
|
1992
|
+
* @group Audio & Video Transport
|
|
1993
|
+
* @order 60
|
|
1970
1994
|
*/
|
|
1971
1995
|
[EngineEventsTypes.onUserPublishStream]: (event: {
|
|
1972
1996
|
|
|
@@ -1984,6 +2008,8 @@ export interface IEngineEvents {
|
|
|
1984
2008
|
/**
|
|
1985
2009
|
* @brief Callback on removal of remote media stream captured by camera/microphone.
|
|
1986
2010
|
* @notes You will receive this callback after a remote user successfully unpublishes media streams captured by camera/microphone in the room with [unpublishStream](104478#unpublishstream). Then you can choose whether to call [unsubscribeStream](104478#unsubscribestream) to unsubscribe from the streams or not.
|
|
2011
|
+
* @group Audio & Video Transport
|
|
2012
|
+
* @order 61
|
|
1987
2013
|
*/
|
|
1988
2014
|
[EngineEventsTypes.onUserUnpublishStream]: (event: {
|
|
1989
2015
|
|
|
@@ -2006,6 +2032,8 @@ export interface IEngineEvents {
|
|
|
2006
2032
|
/**
|
|
2007
2033
|
* @brief Callback on new screen sharing media streams from remote users in the room.
|
|
2008
2034
|
* @notes You will receive this callback after a remote user successfully published screen sharing streams in the room with [publishScreen](104478#publishscreen). Then you can choose whether to call [subscribeScreen](104478#subscribescreen) to subscribe to the streams or not.
|
|
2035
|
+
* @group Screen Sharing
|
|
2036
|
+
* @order 30
|
|
2009
2037
|
*/
|
|
2010
2038
|
[EngineEventsTypes.onUserPublishScreen]: (event: {
|
|
2011
2039
|
|
|
@@ -2023,6 +2051,8 @@ export interface IEngineEvents {
|
|
|
2023
2051
|
/**
|
|
2024
2052
|
* @brief Callback on removal of screen sharing media streams from remote users in the room.
|
|
2025
2053
|
* @notes You will receive this callback after a remote user successfully unpublishes media streams captured by camera/microphone in the room with [unpublishScreen](104478#unpublishscreen). Then you can choose whether to call [unsubscribeScreen](104478#unsubscribescreen) to unsubscribe from the streams or not.
|
|
2054
|
+
* @group Screen Sharing
|
|
2055
|
+
* @order 31
|
|
2026
2056
|
*/
|
|
2027
2057
|
[EngineEventsTypes.onUserUnpublishScreen]: (event: {
|
|
2028
2058
|
|
|
@@ -2047,7 +2077,6 @@ export interface IEngineEvents {
|
|
|
2047
2077
|
* @deprecated since 4.47, use on onRemoteVideoFirstFrame instead.
|
|
2048
2078
|
* @brief Rendering of the first video frame
|
|
2049
2079
|
* @param event
|
|
2050
|
-
* @region Video Management Event
|
|
2051
2080
|
*/
|
|
2052
2081
|
[EngineEventsTypes.onVideoFirstFrameRendered]: (event: onVideoFirstFrameRenderedEvent) => void;
|
|
2053
2082
|
|
|
@@ -2056,14 +2085,14 @@ export interface IEngineEvents {
|
|
|
2056
2085
|
* @deprecated since 4.47, use on onRemoteVideoFirstFrame instead.
|
|
2057
2086
|
* @brief Rendering of the first video frame
|
|
2058
2087
|
* @param event
|
|
2059
|
-
* @region Video Management Event
|
|
2060
2088
|
*/
|
|
2061
2089
|
[EngineEventsTypes.onVideoFirstFrameDecoded]: (event: onVideoFirstFrameDecodedEvent) => void;
|
|
2062
2090
|
|
|
2063
2091
|
/**
|
|
2064
2092
|
* @brief Decoding of the first video frame
|
|
2065
2093
|
* @param event
|
|
2066
|
-
* @
|
|
2094
|
+
* @group Audio & Video Transport
|
|
2095
|
+
* @order 65
|
|
2067
2096
|
*/
|
|
2068
2097
|
[EngineEventsTypes.onRemoteVideoFirstFrame]: (event: onVideoFirstFrameRenderedEvent) => void;
|
|
2069
2098
|
|
|
@@ -2072,40 +2101,38 @@ export interface IEngineEvents {
|
|
|
2072
2101
|
* @deprecated since 4.47, use on onRemoteAudioFirstFrame instead.
|
|
2073
2102
|
* @brief Decoding of the first audio frame
|
|
2074
2103
|
* @param event
|
|
2075
|
-
* @region Audio Management Event
|
|
2076
2104
|
*/
|
|
2077
2105
|
[EngineEventsTypes.onAudioFirstFrameDecoded]: (event: onAudioFirstFrameDecodedEvent) => void;
|
|
2078
2106
|
|
|
2079
2107
|
/**
|
|
2080
2108
|
* @brief first remote audio frame Received
|
|
2081
2109
|
* @param event
|
|
2082
|
-
* @
|
|
2110
|
+
* @group Audio & Video Transport
|
|
2111
|
+
* @order 66
|
|
2083
2112
|
*/
|
|
2084
2113
|
[EngineEventsTypes.onRemoteAudioFirstFrame]: (event: onAudioFirstFrameDecodedEvent) => void;
|
|
2085
2114
|
|
|
2086
2115
|
/**
|
|
2087
2116
|
* @brief Event of video device state changing.
|
|
2088
2117
|
* @param event Information and state of a media device.
|
|
2118
|
+
* @group Video Management
|
|
2119
|
+
* @order 50
|
|
2089
2120
|
*/
|
|
2090
2121
|
[EngineEventsTypes.onVideoDeviceStateChanged]: (event: DeviceInfo) => void;
|
|
2091
2122
|
|
|
2092
2123
|
/**
|
|
2093
2124
|
* @brief Event of audio device state changing.
|
|
2094
2125
|
* @param event Information and state of a media device.
|
|
2126
|
+
* @group Audio Management
|
|
2127
|
+
* @order 50
|
|
2095
2128
|
*/
|
|
2096
2129
|
[EngineEventsTypes.onAudioDeviceStateChanged]: (event: DeviceInfo) => void;
|
|
2097
2130
|
|
|
2098
|
-
/**
|
|
2099
|
-
* @brief Failure of automatically playing
|
|
2100
|
-
* @param event
|
|
2101
|
-
* @region Video Management Event
|
|
2102
|
-
*/
|
|
2103
|
-
[EngineEventsTypes.onAutoplayFailed]: (event: AutoPlayFailedEvent) => void;
|
|
2104
|
-
|
|
2105
2131
|
/**
|
|
2106
2132
|
* @brief Event of media track ending
|
|
2107
2133
|
* @param event
|
|
2108
|
-
* @
|
|
2134
|
+
* @group Video Management
|
|
2135
|
+
* @order 75
|
|
2109
2136
|
*/
|
|
2110
2137
|
[EngineEventsTypes.onTrackEnded]: (event: {
|
|
2111
2138
|
|
|
@@ -2155,7 +2182,8 @@ export interface IEngineEvents {
|
|
|
2155
2182
|
/**
|
|
2156
2183
|
* @brief Event of receiving a broadcast text message in the room
|
|
2157
2184
|
* @param event
|
|
2158
|
-
* @
|
|
2185
|
+
* @group Message
|
|
2186
|
+
* @order 55
|
|
2159
2187
|
*/
|
|
2160
2188
|
[EngineEventsTypes.onRoomMessageReceived]: (event: {
|
|
2161
2189
|
|
|
@@ -2173,7 +2201,8 @@ export interface IEngineEvents {
|
|
|
2173
2201
|
/**
|
|
2174
2202
|
* @brief Event of receiving a broadcast binary message in the room
|
|
2175
2203
|
* @param event
|
|
2176
|
-
* @
|
|
2204
|
+
* @group Message
|
|
2205
|
+
* @order 56
|
|
2177
2206
|
*/
|
|
2178
2207
|
[EngineEventsTypes.onRoomBinaryMessageReceived]: (event: {
|
|
2179
2208
|
|
|
@@ -2191,28 +2220,32 @@ export interface IEngineEvents {
|
|
|
2191
2220
|
/**
|
|
2192
2221
|
* @brief Receiving a point-to-point text message from one of the users in the room by calling [sendUserMessage](104478#sendusermessage)
|
|
2193
2222
|
* @param event
|
|
2194
|
-
* @
|
|
2223
|
+
* @group Message
|
|
2224
|
+
* @order 50
|
|
2195
2225
|
*/
|
|
2196
2226
|
[EngineEventsTypes.onUserMessageReceived]: (event: UserMessageEvent) => void;
|
|
2197
2227
|
|
|
2198
2228
|
/**
|
|
2199
2229
|
* @brief Receiving a point-to-point binary message from one of the users in the room
|
|
2200
2230
|
* @param event
|
|
2201
|
-
* @
|
|
2231
|
+
* @group Message
|
|
2232
|
+
* @order 51
|
|
2202
2233
|
*/
|
|
2203
2234
|
[EngineEventsTypes.onUserBinaryMessageReceived]: (event: UserBinaryMessageEvent) => void;
|
|
2204
2235
|
|
|
2205
2236
|
/**
|
|
2206
2237
|
* @brief Statistics of subscribed media streams and network states in a cycle of 2s
|
|
2207
2238
|
* @param stats
|
|
2208
|
-
* @
|
|
2239
|
+
* @group Audio & Video Transport
|
|
2240
|
+
* @order 70
|
|
2209
2241
|
*/
|
|
2210
2242
|
[EngineEventsTypes.onRemoteStreamStats]: (stats: RemoteStreamStats) => void;
|
|
2211
2243
|
|
|
2212
2244
|
/**
|
|
2213
2245
|
* @brief Statistics of local media streams and network states in a cycle of 2s
|
|
2214
2246
|
* @param stats
|
|
2215
|
-
* @
|
|
2247
|
+
* @group Audio & Video Transport
|
|
2248
|
+
* @order 71
|
|
2216
2249
|
*/
|
|
2217
2250
|
[EngineEventsTypes.onLocalStreamStats]: (stats: LocalStreamStats) => void;
|
|
2218
2251
|
|
|
@@ -2220,6 +2253,8 @@ export interface IEngineEvents {
|
|
|
2220
2253
|
* @hidden
|
|
2221
2254
|
* @brief This 2 s periodical callback notifies information of the public stream after calling [startPlayPublicStream](104478#startplaypublicstream).
|
|
2222
2255
|
* @param stats
|
|
2256
|
+
* @group Public Stream
|
|
2257
|
+
* @order 20
|
|
2223
2258
|
*/
|
|
2224
2259
|
[EngineEventsTypes.onPublicStreamStats]: (stats: PublicStreamStats) => void;
|
|
2225
2260
|
|
|
@@ -2229,7 +2264,6 @@ export interface IEngineEvents {
|
|
|
2229
2264
|
* @brief Volume of each of the users in the room
|
|
2230
2265
|
* If the user has not joined a room, the list will only include volume of `local_user`.
|
|
2231
2266
|
* @param event
|
|
2232
|
-
* @region Room Event
|
|
2233
2267
|
*/
|
|
2234
2268
|
[EngineEventsTypes.onAudioVolumeIndication]: (event: {
|
|
2235
2269
|
|
|
@@ -2243,7 +2277,8 @@ export interface IEngineEvents {
|
|
|
2243
2277
|
* @brief After calling [enableAudioPropertiesReport](104478#enableaudiopropertiesreport), you will periodically receive this callback for the information about local audio.
|
|
2244
2278
|
* Local audio includes the microphone audio and the screen audio captured using RTC SDK internal mechanisms.
|
|
2245
2279
|
* @param event Information about local audio.
|
|
2246
|
-
* @
|
|
2280
|
+
* @group Audio Management
|
|
2281
|
+
* @order 55
|
|
2247
2282
|
*/
|
|
2248
2283
|
[EngineEventsTypes.onLocalAudioPropertiesReport]: (event: LocalAudioPropertiesInfo[]) => void;
|
|
2249
2284
|
|
|
@@ -2251,27 +2286,32 @@ export interface IEngineEvents {
|
|
|
2251
2286
|
* @brief After calling [enableAudioPropertiesReport](104478#enableaudiopropertiesreport), you will periodically receive this callback for the information about the subscribed remote audio streams.
|
|
2252
2287
|
* The remote audio streams includes the microphone audio and screen audio collected using the RTC SDK internal mechanism/custom mechanism.
|
|
2253
2288
|
* @param event Information about remote audio.
|
|
2254
|
-
* @
|
|
2289
|
+
* @group Audio Management
|
|
2290
|
+
* @order 56
|
|
2255
2291
|
*/
|
|
2256
2292
|
[EngineEventsTypes.onRemoteAudioPropertiesReport]: (event: RemoteAudioPropertiesInfo[]) => void;
|
|
2257
2293
|
|
|
2258
2294
|
/**
|
|
2259
2295
|
* @brief After calling [enableAudioPropertiesReport](104478#enableaudiopropertiesreport), you will periodically receive this callback for the information of the user with the highest voice volume.
|
|
2260
2296
|
* @param event The information of the user with the highest voice volume.
|
|
2261
|
-
* @
|
|
2297
|
+
* @group Audio Management
|
|
2298
|
+
* @order 60
|
|
2262
2299
|
*/
|
|
2263
2300
|
[EngineEventsTypes.onActiveSpeaker]: (userInfo: UserInfo) => void;
|
|
2264
2301
|
|
|
2265
2302
|
/**
|
|
2266
|
-
* @brief The current playback device has been changed successfully by calling [setAudioPlaybackDevice](104478#
|
|
2303
|
+
* @brief The current playback device has been changed successfully by calling [setAudioPlaybackDevice](104478#setaudioplaybackdevice).
|
|
2267
2304
|
* @param event Information of the media devices. See [MediaDeviceInfo](https://developer.mozilla.org/en-US/docs/Web/API/MediaDeviceInfo).
|
|
2305
|
+
* @group Audio Management
|
|
2306
|
+
* @order 65
|
|
2268
2307
|
*/
|
|
2269
2308
|
[EngineEventsTypes.onAudioPlaybackDeviceChanged]: (event: MediaDeviceInfo) => void;
|
|
2270
2309
|
|
|
2271
2310
|
/**
|
|
2272
2311
|
* @brief The remote clients in the room will be informed of the state change via this event after the publisher starts audio capture by calling [startAudioCapture](104478#startaudiocapture).
|
|
2273
2312
|
* @param event
|
|
2274
|
-
* @
|
|
2313
|
+
* @group Audio Management
|
|
2314
|
+
* @order 70
|
|
2275
2315
|
*/
|
|
2276
2316
|
[EngineEventsTypes.onUserStartAudioCapture]: (event: {
|
|
2277
2317
|
|
|
@@ -2284,7 +2324,8 @@ export interface IEngineEvents {
|
|
|
2284
2324
|
/**
|
|
2285
2325
|
* @brief The remote clients in the room will be informed of the state change via this event after the publisher stops audio capture by calling [stopAudioCapture](104478#stopaudiocapture).
|
|
2286
2326
|
* @param event
|
|
2287
|
-
* @
|
|
2327
|
+
* @group Audio Management
|
|
2328
|
+
* @order 71
|
|
2288
2329
|
*/
|
|
2289
2330
|
[EngineEventsTypes.onUserStopAudioCapture]: (event: {
|
|
2290
2331
|
|
|
@@ -2297,7 +2338,8 @@ export interface IEngineEvents {
|
|
|
2297
2338
|
/**
|
|
2298
2339
|
* @brief The remote clients in the room will be informed of the state change via this event after the publisher starts video capture by calling [startVideoCapture](104478#startvideocapture).
|
|
2299
2340
|
* @param event
|
|
2300
|
-
* @
|
|
2341
|
+
* @group Video Management
|
|
2342
|
+
* @order 55
|
|
2301
2343
|
*/
|
|
2302
2344
|
[EngineEventsTypes.onUserStartVideoCapture]: (event: {
|
|
2303
2345
|
|
|
@@ -2310,7 +2352,8 @@ export interface IEngineEvents {
|
|
|
2310
2352
|
/**
|
|
2311
2353
|
The remote clients in the room will be informed of the state change via this event after the publisher stops video capture by calling [stopVideoCapture](104478#stopvideocapture).
|
|
2312
2354
|
* @param event
|
|
2313
|
-
* @
|
|
2355
|
+
* @group Video Management
|
|
2356
|
+
* @order 56
|
|
2314
2357
|
*/
|
|
2315
2358
|
[EngineEventsTypes.onUserStopVideoCapture]: (event: {
|
|
2316
2359
|
|
|
@@ -2323,14 +2366,16 @@ export interface IEngineEvents {
|
|
|
2323
2366
|
/**
|
|
2324
2367
|
* @brief Event of receiving SEI data from video frames
|
|
2325
2368
|
* @param event Event of receiving SEI data
|
|
2326
|
-
* @
|
|
2369
|
+
* @group Message
|
|
2370
|
+
* @order 60
|
|
2327
2371
|
*/
|
|
2328
2372
|
[EngineEventsTypes.onSEIMessageReceived]: (event: onSEIMessageEvent) => void;
|
|
2329
2373
|
|
|
2330
2374
|
/**
|
|
2331
2375
|
* @brief Result of the Auto-Subscription
|
|
2332
2376
|
* @param event
|
|
2333
|
-
* @
|
|
2377
|
+
* @group Audio & Video Transport
|
|
2378
|
+
* @order 75
|
|
2334
2379
|
*/
|
|
2335
2380
|
[EngineEventsTypes.onAutoSubscribeResult]: (event: {
|
|
2336
2381
|
|
|
@@ -2353,7 +2398,8 @@ export interface IEngineEvents {
|
|
|
2353
2398
|
/**
|
|
2354
2399
|
* @brief Result of Auto-publishing. You will receive this event if you enable Auto-publish when calling `joinRoom`
|
|
2355
2400
|
* @param event
|
|
2356
|
-
* @
|
|
2401
|
+
* @group Audio & Video Transport
|
|
2402
|
+
* @order 76
|
|
2357
2403
|
*/
|
|
2358
2404
|
[EngineEventsTypes.onAutoPublishResult]: (event: {
|
|
2359
2405
|
|
|
@@ -2372,6 +2418,8 @@ export interface IEngineEvents {
|
|
|
2372
2418
|
* @brief Auto-play fails.
|
|
2373
2419
|
* @param event Event related to the player
|
|
2374
2420
|
* @region Room Management Event
|
|
2421
|
+
* @group Video Management
|
|
2422
|
+
* @order 70
|
|
2375
2423
|
*/
|
|
2376
2424
|
[EngineEventsTypes.onAutoplayFailed]: (event: AutoPlayFailedEvent) => void;
|
|
2377
2425
|
|
|
@@ -2380,14 +2428,14 @@ export interface IEngineEvents {
|
|
|
2380
2428
|
* @deprecated since 4.44, use onStreamMixingEvent instead.
|
|
2381
2429
|
* @brief Result of the Pushing stream to CDN
|
|
2382
2430
|
* @param event
|
|
2383
|
-
* @region Advanced Feature Event
|
|
2384
2431
|
*/
|
|
2385
2432
|
[EngineEventsTypes.onLiveTranscodingResult]: (event: LiveTranscodingResultEvent) => void;
|
|
2386
2433
|
|
|
2387
2434
|
/**
|
|
2388
2435
|
* @brief event of error
|
|
2389
2436
|
* @param event
|
|
2390
|
-
* @
|
|
2437
|
+
* @group Room Management
|
|
2438
|
+
* @order 40
|
|
2391
2439
|
*/
|
|
2392
2440
|
[EngineEventsTypes.onError]: (event: {
|
|
2393
2441
|
|
|
@@ -2400,27 +2448,32 @@ export interface IEngineEvents {
|
|
|
2400
2448
|
/**
|
|
2401
2449
|
* @brief Event of the state change of audio mixing
|
|
2402
2450
|
* @param event
|
|
2403
|
-
* @
|
|
2451
|
+
* @group Audio Mixing
|
|
2452
|
+
* @order 40
|
|
2404
2453
|
*/
|
|
2405
2454
|
[EngineEventsTypes.onAudioMixingStateChanged]: (event: AudioMixingStateChangedEvent) => void;
|
|
2406
2455
|
|
|
2407
2456
|
/**
|
|
2408
2457
|
* @brief Event of receiving a text message
|
|
2409
2458
|
* @param event
|
|
2410
|
-
* @
|
|
2459
|
+
* @group Message
|
|
2460
|
+
* @order 65
|
|
2411
2461
|
*/
|
|
2412
2462
|
[EngineEventsTypes.onUserMessageReceivedOutsideRoom]: (event: UserMessageEvent) => void;
|
|
2413
2463
|
|
|
2414
2464
|
/**
|
|
2415
2465
|
* @brief Event of receiving a binary message
|
|
2416
2466
|
* @param event
|
|
2417
|
-
* @
|
|
2467
|
+
* @group Message
|
|
2468
|
+
* @order 66
|
|
2418
2469
|
*/
|
|
2419
2470
|
[EngineEventsTypes.onUserBinaryMessageReceivedOutsideRoom]: (event: UserBinaryMessageEvent) => void;
|
|
2420
2471
|
|
|
2421
2472
|
/**
|
|
2422
2473
|
* @brief You will receive this callback 30 s before the Token expires.
|
|
2423
2474
|
* Call [updateToken](104478#updatetoken) to submit a new Token。The user will be removed from the room when the Token expires.
|
|
2475
|
+
* @group Room Management
|
|
2476
|
+
* @order 45
|
|
2424
2477
|
*/
|
|
2425
2478
|
[EngineEventsTypes.onTokenWillExpire]: () => void;
|
|
2426
2479
|
|
|
@@ -2435,6 +2488,8 @@ export interface IEngineEvents {
|
|
|
2435
2488
|
* @brief Callback of the result of publishing the public stream.
|
|
2436
2489
|
* After calling [startPushPublicStream](104478#startpushpublicstream), you will be informed of the result through this callback.
|
|
2437
2490
|
* @param event
|
|
2491
|
+
* @group Public Stream
|
|
2492
|
+
* @order 25
|
|
2438
2493
|
*/
|
|
2439
2494
|
[EngineEventsTypes.onPushPublicStreamResult]: (event: PublicStreamResultEvent) => void;
|
|
2440
2495
|
|
|
@@ -2446,6 +2501,8 @@ export interface IEngineEvents {
|
|
|
2446
2501
|
* @notes When multiple streams in the public stream contain SEI:
|
|
2447
2502
|
* + You will receive SEI from all the video frames if the SEI do not have conflicts.
|
|
2448
2503
|
* + However, if SEI from video frames have conflicts, you will receive only one of them.
|
|
2504
|
+
* @group Public Stream
|
|
2505
|
+
* @order 30
|
|
2449
2506
|
*/
|
|
2450
2507
|
[EngineEventsTypes.onPublicStreamSEIMessageReceived]: (event: PublicStreamSEIMessageEvent) => void;
|
|
2451
2508
|
|
|
@@ -2454,6 +2511,8 @@ export interface IEngineEvents {
|
|
|
2454
2511
|
* @brief Callback of the successful decoding of the first video frame of the public stream.
|
|
2455
2512
|
* Refer to [startPlayPublicStream](104478#startplaypublicstream) for details about subscribing to a public stream.
|
|
2456
2513
|
* @param event
|
|
2514
|
+
* @group Public Stream
|
|
2515
|
+
* @order 36
|
|
2457
2516
|
*/
|
|
2458
2517
|
[EngineEventsTypes.onFirstPublicStreamVideoFrameDecoded]: (event: PublicStreamVideoFirstFrameDecodedEvent) => void;
|
|
2459
2518
|
|
|
@@ -2462,6 +2521,8 @@ export interface IEngineEvents {
|
|
|
2462
2521
|
* @brief Callback of the successful decoding of the first audio frame of the public stream.
|
|
2463
2522
|
* Refer to [startPlayPublicStream](104478#startplaypublicstream) for details about subscribing to a public stream.
|
|
2464
2523
|
* @param event
|
|
2524
|
+
* @group Public Stream
|
|
2525
|
+
* @order 35
|
|
2465
2526
|
*/
|
|
2466
2527
|
[EngineEventsTypes.onFirstPublicStreamAudioFrameDecoded]: (event: PublicStreamAudioFirstFrameDecodedEvent) => void;
|
|
2467
2528
|
|
|
@@ -2470,6 +2531,8 @@ export interface IEngineEvents {
|
|
|
2470
2531
|
* @brief Callback of the successful rendering of the first video frame of the public stream.
|
|
2471
2532
|
* Refer to [startPlayPublicStream](104478#startplaypublicstream) for details about subscribing to a public stream.
|
|
2472
2533
|
* @param event
|
|
2534
|
+
* @group Public Stream
|
|
2535
|
+
* @order 37
|
|
2473
2536
|
*/
|
|
2474
2537
|
[EngineEventsTypes.onFirstPublicStreamVideoFrameRendered]: (event: PublicStreamAudioFirstFrameDecodedEvent) => void;
|
|
2475
2538
|
|
|
@@ -2477,6 +2540,8 @@ export interface IEngineEvents {
|
|
|
2477
2540
|
* @brief Notification on the playing volume during the test for the local audio devices
|
|
2478
2541
|
* @param volume playing volume during the test for the local audio devices in milliseconds. We recommend to set it to 200 ms.The range is [0,255].
|
|
2479
2542
|
* @notes Start an audio-device test by calling [startAudioPlaybackDeviceTest](104478#startaudioplaybackdevicetest) or [startAudioDeviceRecordTest](104478#startaudiodevicerecordtest) will register this callback for regular notification on playing volume. You can set the time interval between each callback by passing a proper value when calling the API above.
|
|
2543
|
+
* @group Device Management
|
|
2544
|
+
* @order 40
|
|
2480
2545
|
*/
|
|
2481
2546
|
[EngineEventsTypes.onAudioPlaybackDeviceTestVolume]: (volume: number) => void;
|
|
2482
2547
|
|
|
@@ -2484,17 +2549,23 @@ export interface IEngineEvents {
|
|
|
2484
2549
|
* @brief The callback reports the upstream and downstream network quality of the local user every 2s after the user enters the room.
|
|
2485
2550
|
* @param uplinkNetworkQuality Upstream network quality.
|
|
2486
2551
|
* @param downlinkNetworkQuality Downstream network quality.
|
|
2552
|
+
* @group Audio & Video Transport
|
|
2553
|
+
* @order 80
|
|
2487
2554
|
*/
|
|
2488
2555
|
[EngineEventsTypes.onNetworkQuality]: (uplinkNetworkQuality: NetworkQuality, downlinkNetworkQuality: NetworkQuality) => void;
|
|
2489
2556
|
|
|
2490
2557
|
/**
|
|
2491
2558
|
* @brief Receives this callback when fallback happens or the stream recovers from fallback.
|
|
2492
2559
|
* @param event Information about stream switching
|
|
2560
|
+
* @group Audio & Video Transport
|
|
2561
|
+
* @order 85
|
|
2493
2562
|
*/
|
|
2494
2563
|
[EngineEventsTypes.onSimulcastSubscribeFallback]: (event: RemoteStreamSwitch) => void;
|
|
2495
2564
|
|
|
2496
2565
|
/**
|
|
2497
2566
|
* @brief When the resolution of remote video changes, users who subscribed to the stream will receive this callback.
|
|
2567
|
+
* @group Audio & Video Transport
|
|
2568
|
+
* @order 90
|
|
2498
2569
|
*/
|
|
2499
2570
|
[EngineEventsTypes.onRemoteVideoSizeChanged]: (
|
|
2500
2571
|
|
|
@@ -2522,7 +2593,8 @@ export interface IEngineEvents {
|
|
|
2522
2593
|
/**
|
|
2523
2594
|
* @brief Pushing a mixed stream to CDN events
|
|
2524
2595
|
* @param event
|
|
2525
|
-
* @
|
|
2596
|
+
* @group Push to CDN
|
|
2597
|
+
* @order 15
|
|
2526
2598
|
*/
|
|
2527
2599
|
[EngineEventsTypes.onStreamMixingEvent]: (event: StreamMixingEvent) => void;
|
|
2528
2600
|
|
|
@@ -2534,6 +2606,8 @@ export interface IEngineEvents {
|
|
|
2534
2606
|
* + If a user is banned, other users receive this callback again when they leave and re-enter the room.
|
|
2535
2607
|
* + Only banned/unbanned user will receive this callback if the conference mode is enabled in the console.
|
|
2536
2608
|
* + If the room is dissolved and created again, the status in the room is cleared.
|
|
2609
|
+
* @group Audio & Video Transport
|
|
2610
|
+
* @order 95
|
|
2537
2611
|
*/
|
|
2538
2612
|
[EngineEventsTypes.onVideoStreamBanned]: (event: VideoStreamBannedEvent) => void;
|
|
2539
2613
|
|
|
@@ -2545,11 +2619,15 @@ export interface IEngineEvents {
|
|
|
2545
2619
|
* + If a user is banned, other users receive this callback again when they leave and re-enter the room.
|
|
2546
2620
|
* + Only banned/unbanned user will receive this callback if the conference mode is enabled in the console.
|
|
2547
2621
|
* + If the room is dissolved and created again, the status in the room is cleared.
|
|
2622
|
+
* @group Audio & Video Transport
|
|
2623
|
+
* @order 96
|
|
2548
2624
|
*/
|
|
2549
2625
|
[EngineEventsTypes.onAudioStreamBanned]: (event: AudioStreamBannedEvent) => void;
|
|
2550
2626
|
|
|
2551
2627
|
/**
|
|
2552
2628
|
* @brief The callback of the actual video capturing configuration.
|
|
2629
|
+
* @group Video Management
|
|
2630
|
+
* @order 60
|
|
2553
2631
|
*/
|
|
2554
2632
|
[EngineEventsTypes.onLocalVideoSizeChanged]: (e: {
|
|
2555
2633
|
|
|
@@ -2577,17 +2655,21 @@ export interface IEngineEvents {
|
|
|
2577
2655
|
|
|
2578
2656
|
/**
|
|
2579
2657
|
* @hidden currently not available
|
|
2580
|
-
* @brief
|
|
2581
|
-
*
|
|
2582
|
-
* @param
|
|
2658
|
+
* @brief Callback on subtitle states.
|
|
2659
|
+
* After you call [startSubtitle](104478#startsubtitle) and [stopSubtitle](104478#stopsubtitle), you will receive this callback which informs you of the states and error codes of the subtitling task, as well as detailed information on the third party services' errors.
|
|
2660
|
+
* @param e Subtitle status.
|
|
2661
|
+
* @group Live Caption and Translation
|
|
2662
|
+
* @order 10
|
|
2583
2663
|
*/
|
|
2584
2664
|
[EngineEventsTypes.onSubtitleStateChanged]: (e: SubtitleEvent) => void;
|
|
2585
2665
|
|
|
2586
2666
|
/**
|
|
2587
2667
|
* @hidden currently not available
|
|
2588
|
-
* @brief
|
|
2589
|
-
*
|
|
2590
|
-
* @param
|
|
2668
|
+
* @brief Callback on subtitle messages.
|
|
2669
|
+
* After calling [startSubtitle](104478#startsubtitle) successfully, you will receive this callback which informs you of the related information on subtitles.
|
|
2670
|
+
* @param e Subtitle message.
|
|
2671
|
+
* @group Live Caption and Translation
|
|
2672
|
+
* @order 11
|
|
2591
2673
|
*/
|
|
2592
2674
|
[EngineEventsTypes.onSubtitleMessageReceived]: (e: SubtitleMessage[]) => void;
|
|
2593
2675
|
|
|
@@ -2595,7 +2677,9 @@ export interface IEngineEvents {
|
|
|
2595
2677
|
* @brief Event of whether the setting for the message server successes
|
|
2596
2678
|
* @param error Error code
|
|
2597
2679
|
* @notes + This event notifies you the result after the call of [setServerParams](104478#setserverparams).
|
|
2598
|
-
*
|
|
2680
|
+
* + If you lose internet connection after calling [setServerParams](104478#setserverparams), you will receive this event once the internet reconnects.
|
|
2681
|
+
* @group Message
|
|
2682
|
+
* @order 70
|
|
2599
2683
|
*/
|
|
2600
2684
|
[EngineEventsTypes.onServerParamsSetResult]: (error?: ErrorCode) => void;
|
|
2601
2685
|
|
|
@@ -2610,6 +2694,8 @@ export interface IEngineEvents {
|
|
|
2610
2694
|
/**
|
|
2611
2695
|
* @brief Event of failing to forward stream across rooms.
|
|
2612
2696
|
* @param e Status information for forwarding media stream across rooms.
|
|
2697
|
+
* @group Audio & Video Transport
|
|
2698
|
+
* @order 100
|
|
2613
2699
|
*/
|
|
2614
2700
|
[EngineEventsTypes.onForwardStreamError]: (e: ForwardStreamStateInfo) => void;
|
|
2615
2701
|
|
|
@@ -2645,7 +2731,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2645
2731
|
* @notes + In the same room with the same App ID, the user ID of each user must be unique. The user will be kicked out of the room when a user with the same userID joins the room because of the error of `DUPLICATE_LOGIN`.
|
|
2646
2732
|
* + Remote users will receive [onUserJoined](104479#onuserjoined) callback when a visible user joins the room. Call [setUserVisibility](#setuservisibility) to switch the visibility of the user.
|
|
2647
2733
|
* + RTC SDK will try reconnect after losing connection to the server caused by a poor network connection. At this point, [onConnectionStateChanged](104479#onconnectionstatechanged) callback will be triggered and the SDK will automatically retry until it successfully reconnects to the server. The remote user will receive [onUserJoined](104479#onuserjoined) if a visible user reconnected successfully.
|
|
2648
|
-
* @
|
|
2734
|
+
* @group Room Management
|
|
2735
|
+
* @order 0
|
|
2649
2736
|
*/
|
|
2650
2737
|
joinRoom: (token: string | null, roomId: string, userInfo: UserInfo, roomConfig?: RoomConfig) => Promise<void>;
|
|
2651
2738
|
|
|
@@ -2654,7 +2741,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2654
2741
|
* The user calls this API to leave the room, end the call process, and release all call-related resources.
|
|
2655
2742
|
* @notes + After visible users leave the room, other users in the room will receive [onUserLeave](104479#onuserleave) callback notification.
|
|
2656
2743
|
* + You must call this API to end the call, after calling the [joinRoom](#joinroom) method to join the room. Otherwise you cannot start the next call. Repeatedly call this method have no negative impact.
|
|
2657
|
-
* @
|
|
2744
|
+
* @group Room Management
|
|
2745
|
+
* @order 1
|
|
2658
2746
|
*/
|
|
2659
2747
|
leaveRoom: (waitAck?: boolean) => Promise<void>;
|
|
2660
2748
|
|
|
@@ -2665,7 +2753,6 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2665
2753
|
* @notes + Make sure that the business scenarios related to the `RTCEngine` instances that need to be destroyed are all finished before calling this API.
|
|
2666
2754
|
* + Calling this API will destroy all memory related to this `RTCEngine` instance, and stop any interaction with the media server.
|
|
2667
2755
|
* + This API is a blocking call which will block the current thread until the SDK completes the exit logic. Therefore, do NOT to call this API directly in the callback thread. Besides do NOT wait for the execution of the main thread including this API in any callback, thus causing a deadlock.
|
|
2668
|
-
* @region Engine Management
|
|
2669
2756
|
*/
|
|
2670
2757
|
destroy: () => void;
|
|
2671
2758
|
|
|
@@ -2676,7 +2763,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2676
2763
|
* + Call [publishScreen](#publishscreen) to start screen sharing.
|
|
2677
2764
|
* + After you call this API, the other users in the room will receive [onUserPublishStream](104479#onuserpublishstream).
|
|
2678
2765
|
* + Call [unpublishStream](#unpublishstream) to stop publishing streams.
|
|
2679
|
-
* @
|
|
2766
|
+
* @group Audio & Video Transport
|
|
2767
|
+
* @order 0
|
|
2680
2768
|
*/
|
|
2681
2769
|
publishStream: (mediaType: MediaType) => Promise<void>;
|
|
2682
2770
|
|
|
@@ -2685,7 +2773,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2685
2773
|
* @param mediaType Media stream type, used for specifying whether to stop publishing audio stream or video stream.
|
|
2686
2774
|
* @notes + After calling [publishStream](#publishstream), call this API to stop publishing streams.
|
|
2687
2775
|
* + After calling this API, the other users in the room will receive [onUserUnpublishStream](104479#onuserunpublishstream).
|
|
2688
|
-
* @
|
|
2776
|
+
* @group Audio & Video Transport
|
|
2777
|
+
* @order 1
|
|
2689
2778
|
*/
|
|
2690
2779
|
unpublishStream: (mediaType: MediaType) => Promise<void>;
|
|
2691
2780
|
|
|
@@ -2695,7 +2784,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2695
2784
|
* @notes + An invisible user cannot publish media streams. Call [setUserVisibility](#setuservisibility) to change your visibility in the room.
|
|
2696
2785
|
* + After you called this API, the other users in the room will receive [onUserPublishScreen](104479#onuserpublishscreen).
|
|
2697
2786
|
* + Call [unpublishScreen](#unpublishscreen) to stop publishing screen sharing streams.
|
|
2698
|
-
* @
|
|
2787
|
+
* @group Screen Sharing
|
|
2788
|
+
* @order 10
|
|
2699
2789
|
*/
|
|
2700
2790
|
publishScreen: (mediaType: MediaType) => Promise<void>;
|
|
2701
2791
|
|
|
@@ -2704,7 +2794,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2704
2794
|
* @param mediaType Media stream type, used for specifying whether to stop publishing audio stream or video stream.
|
|
2705
2795
|
* @notes + After calling [publishScreen](#publishscreen), call this API to stop publishing streams.
|
|
2706
2796
|
* + After calling this API, the other users in the room will receive [onUserUnpublishScreen](104479#onuserunpublishscreen).
|
|
2707
|
-
* @
|
|
2797
|
+
* @group Screen Sharing
|
|
2798
|
+
* @order 11
|
|
2708
2799
|
*/
|
|
2709
2800
|
unpublishScreen: (mediaType: MediaType) => Promise<void>;
|
|
2710
2801
|
|
|
@@ -2715,7 +2806,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2715
2806
|
* @param mediaType Media stream type, used for specifying whether to subscribe to the audio stream or the video stream.
|
|
2716
2807
|
* @notes You must first get the remote stream
|
|
2717
2808
|
* information through [onUserPublishStream](104479#onuserpublishstream) before calling this API to subscribe to streams accordingly.
|
|
2718
|
-
* @
|
|
2809
|
+
* @group Audio & Video Transport
|
|
2810
|
+
* @order 5
|
|
2719
2811
|
*/
|
|
2720
2812
|
subscribeStream: (userId: string, mediaType: MediaType) => Promise<void>;
|
|
2721
2813
|
|
|
@@ -2724,7 +2816,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2724
2816
|
* You can call this API in both automatic subscription mode and manual subscription mode.
|
|
2725
2817
|
* @param userId The ID of the remote user who published the target audio/video stream.
|
|
2726
2818
|
* @param mediaType Media stream type, used for specifying whether to unsubscribe from the audio stream or the video stream.
|
|
2727
|
-
* @
|
|
2819
|
+
* @group Audio & Video Transport
|
|
2820
|
+
* @order 6
|
|
2728
2821
|
*/
|
|
2729
2822
|
unsubscribeStream: (userId: string, mediaType: MediaType) => Promise<void>;
|
|
2730
2823
|
|
|
@@ -2734,7 +2827,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2734
2827
|
* @param userId The ID of the remote user who published the target screen audio/video stream.
|
|
2735
2828
|
* @param mediaType Media stream type, used for specifying whether to subscribe to the audio stream or the video stream.
|
|
2736
2829
|
* @notes You must first get the remote stream information through [onUserPublishScreen](104479#onuserpublishscreen) before calling this API to subscribe to streams accordingly.
|
|
2737
|
-
* @
|
|
2830
|
+
* @group Screen Sharing
|
|
2831
|
+
* @order 15
|
|
2738
2832
|
*/
|
|
2739
2833
|
subscribeScreen: (userId: string, mediaType: MediaType) => Promise<void>;
|
|
2740
2834
|
|
|
@@ -2743,7 +2837,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2743
2837
|
* You can call this API in both automatic subscription mode and manual subscription mode.
|
|
2744
2838
|
* @param uid The ID of the remote user who published the target screen audio/video stream.
|
|
2745
2839
|
* @param type Media stream type, used for specifying whether to unsubscribe from the audio stream or the video stream.
|
|
2746
|
-
* @
|
|
2840
|
+
* @group Screen Sharing
|
|
2841
|
+
* @order 16
|
|
2747
2842
|
*/
|
|
2748
2843
|
unsubscribeScreen: (userId: string, mediaType: MediaType) => Promise<void>;
|
|
2749
2844
|
|
|
@@ -2754,7 +2849,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2754
2849
|
* @notes + If you call [joinRoom](#joinroom) with an expired token, the joining will fail with an error code `INVALID_TOKEN`. And you need to obtain a valid token and call this API to update the token.
|
|
2755
2850
|
* + If joining a room failed because the token expired, call this API with an updated token. And then RTC SDK will automatically rejoin the room without calling [joinRoom](#joinroom) again.
|
|
2756
2851
|
* + The user will be removed from the room when the Token expires.
|
|
2757
|
-
* @
|
|
2852
|
+
* @group Room Management
|
|
2853
|
+
* @order 5
|
|
2758
2854
|
*/
|
|
2759
2855
|
updateToken: (token: string) => void;
|
|
2760
2856
|
|
|
@@ -2763,6 +2859,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2763
2859
|
* @param deviceId Device ID. Call [enumerateDevices](#enumeratedevices) to get the device list.
|
|
2764
2860
|
* @return
|
|
2765
2861
|
* @notes If the internal audio capturing is on, the switch is effective once you call this API. If the internal audio capturing is off, the setting will be effective when capture starts.
|
|
2862
|
+
* @group Audio Management
|
|
2863
|
+
* @order 0
|
|
2766
2864
|
*/
|
|
2767
2865
|
setAudioCaptureDevice: (deviceId: string) => Promise<void>;
|
|
2768
2866
|
|
|
@@ -2773,6 +2871,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2773
2871
|
* @notes + If the internal video capturing is on, the switch is effective once you call this API. If the internal video capturing is off, the setting will be effective when capture starts.
|
|
2774
2872
|
* + For mobile devices, set deviceId as `"user"` to use the front camera. Set deviceId as `"environment"` to use the rear camera.
|
|
2775
2873
|
* + The default camera is set by the browser.
|
|
2874
|
+
* @group Video Management
|
|
2875
|
+
* @order 0
|
|
2776
2876
|
*/
|
|
2777
2877
|
setVideoCaptureDevice: (deviceId: string) => Promise<void>;
|
|
2778
2878
|
|
|
@@ -2781,35 +2881,39 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2781
2881
|
* Internal video capture refers to: capturing video using the built-in module.
|
|
2782
2882
|
* The remote clients in the room will be informed of the state change via [onUserStartVideoCapture](104479#onuserstartvideocapture) after the publisher starts video capture by calling this API.
|
|
2783
2883
|
* @param deviceId ID of the capture device which you need to pass in to avoid exceptions such as no screen or a screen that is not the desired one. You can call [enumerateDevices](#enumeratedevices) to obtain the list of devices.
|
|
2784
|
-
* @return The actual effective video capture parameters. See [MediaTrackSettings](https://developer.mozilla.org/en-US/docs/Web/API/
|
|
2884
|
+
* @return The actual effective video capture parameters. See [MediaTrackSettings](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings). Pay attention to the properties: `frameRate`, `height`, and `width`.
|
|
2785
2885
|
* @notes + Call [stopVideoCapture](#stopvideocapture) to stop the internal video capture. Otherwise, the internal video capture will sustain until you destroy the engine instance.
|
|
2786
2886
|
* + Once you create the engine instance, you can start internal video capture regardless of the video publishing state. The video stream will start publishing only after the video capture starts.
|
|
2787
2887
|
* + Call [setVideoCaptureDevice](#setvideocapturedevice) to switch the camera used by the internal video capture module.
|
|
2888
|
+
* @group Video Management
|
|
2889
|
+
* @order 5
|
|
2788
2890
|
*/
|
|
2789
2891
|
startVideoCapture: (deviceId?: string) => Promise<MediaTrackSettings>;
|
|
2790
2892
|
|
|
2791
2893
|
/**
|
|
2792
2894
|
* @brief Enable internal video capture immediately. The default setting is off.
|
|
2793
|
-
*
|
|
2794
|
-
*
|
|
2895
|
+
* Internal video capture refers to: capturing video using the built-in module.
|
|
2896
|
+
* The remote clients in the room will be informed of the state change via [onUserStopVideoCapture](104479#onuserstopvideocapture) after the publisher stops video capture by calling this API.
|
|
2795
2897
|
* @return
|
|
2796
2898
|
* @notes + Call [startVideoCapture](#startvideocapture) to enable the internal video capture.
|
|
2797
|
-
*
|
|
2798
|
-
* @
|
|
2899
|
+
* + Without calling this API the internal video capture will sustain until you destroy the engine instance.
|
|
2900
|
+
* @group Video Management
|
|
2901
|
+
* @order 6
|
|
2799
2902
|
*/
|
|
2800
2903
|
stopVideoCapture: () => Promise<void>;
|
|
2801
2904
|
|
|
2802
2905
|
/**
|
|
2803
2906
|
* @brief Start internal audio capture. The default is off.
|
|
2804
|
-
*
|
|
2805
|
-
*
|
|
2907
|
+
* Internal audio capture refers to: capturing audio using the built-in module.
|
|
2908
|
+
* The remote clients in the room will be informed of the state change via [onUserStartAudioCapture](104479#onuserstartaudiocapture) after the publisher starts audio capture by calling this API.
|
|
2806
2909
|
* @param deviceId ID of the capture device which you need to pass in to avoid exceptions such as no sound. You can call [enumerateDevices](#enumeratedevices) to obtain the list of devices.
|
|
2807
|
-
* @return
|
|
2910
|
+
* @return The actual effective audio capture parameters. See [MediaTrackSettings](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings).
|
|
2808
2911
|
* @notes + Call [stopAudioCapture](#stopaudiocapture) to stop the internal audio capture. Otherwise, the internal audio capture will sustain until you destroy the engine instance.
|
|
2809
|
-
*
|
|
2810
|
-
* @
|
|
2912
|
+
* + Once you create the engine instance, you can start internal audio capture regardless of the audio publishing state. The audio stream will start publishing only after the audio capture starts.
|
|
2913
|
+
* @group Audio Management
|
|
2914
|
+
* @order 5
|
|
2811
2915
|
*/
|
|
2812
|
-
startAudioCapture: (deviceId?: string) => Promise<
|
|
2916
|
+
startAudioCapture: (deviceId?: string) => Promise<MediaTrackSettings>;
|
|
2813
2917
|
|
|
2814
2918
|
/**
|
|
2815
2919
|
* @brief Stop internal audio capture. The default is off.
|
|
@@ -2818,7 +2922,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2818
2922
|
* @return
|
|
2819
2923
|
* @notes + Call [startAudioCapture](#startaudiocapture) to enable the internal audio capture.
|
|
2820
2924
|
* + Without calling this API the internal audio capture will sustain until you destroy the engine instance.
|
|
2821
|
-
* @
|
|
2925
|
+
* @group Audio Management
|
|
2926
|
+
* @order 6
|
|
2822
2927
|
*/
|
|
2823
2928
|
stopAudioCapture: () => Promise<void>;
|
|
2824
2929
|
|
|
@@ -2828,15 +2933,17 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2828
2933
|
* @return
|
|
2829
2934
|
* @notes + Call this API will start screen stream video capture but will not publish the captured video. Publishing a screen-sharing stream by calling [publishScreen](#publishscreen).
|
|
2830
2935
|
* + To turn off screen video source capture, call [stopScreenCapture](#stopscreencapture).
|
|
2831
|
-
* + Before calling this API, you can call [
|
|
2832
|
-
* @
|
|
2936
|
+
* + Before calling this API, you can call [setScreenEncoderConfig](#setscreenencoderconfig) to set the capture frame rate and encoding resolution of the screen video stream.
|
|
2937
|
+
* @group Screen Sharing
|
|
2938
|
+
* @order 0
|
|
2833
2939
|
*/
|
|
2834
2940
|
startScreenCapture: (screenConfig?: ScreenConfig) => Promise<void>;
|
|
2835
2941
|
|
|
2836
2942
|
/**
|
|
2837
2943
|
* @brief Stop screen sharing.
|
|
2838
2944
|
* @return
|
|
2839
|
-
* @
|
|
2945
|
+
* @group Screen Sharing
|
|
2946
|
+
* @order 1
|
|
2840
2947
|
*/
|
|
2841
2948
|
stopScreenCapture: () => Promise<void>;
|
|
2842
2949
|
|
|
@@ -2847,7 +2954,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2847
2954
|
* @param streamIndex Video stream properties
|
|
2848
2955
|
* @param videoPlayerOption View information and rendering mode
|
|
2849
2956
|
* @notes You should bind the view after the user joins a room. This setting will sustain when the user leaves the room.
|
|
2850
|
-
* @
|
|
2957
|
+
* @group Video Management
|
|
2958
|
+
* @order 20
|
|
2851
2959
|
*/
|
|
2852
2960
|
setLocalVideoPlayer: (streamIndex: StreamIndex, videoPlayerOption?: Partial<VideoPlayerOption>) => HTMLVideoElement | undefined;
|
|
2853
2961
|
|
|
@@ -2858,14 +2966,16 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2858
2966
|
* @param streamIndex Video stream properties
|
|
2859
2967
|
* @param videoPlayer View information and rendering mode
|
|
2860
2968
|
* @notes You should bind the view after the user joins a room. This setting will sustain when the user leaves the room.
|
|
2861
|
-
* @
|
|
2969
|
+
* @group Video Management
|
|
2970
|
+
* @order 21
|
|
2862
2971
|
*/
|
|
2863
2972
|
setRemoteVideoPlayer: (streamIndex: StreamIndex, videoPlayerOption: VideoPlayerOption) => HTMLVideoElement | undefined;
|
|
2864
2973
|
|
|
2865
2974
|
/**
|
|
2866
2975
|
* @brief Enable or disable the mirror mode for the local video stream.
|
|
2867
2976
|
* @param mirrorType Whether to turn on mirror mode.
|
|
2868
|
-
* @
|
|
2977
|
+
* @group Video Management
|
|
2978
|
+
* @order 30
|
|
2869
2979
|
*/
|
|
2870
2980
|
setLocalVideoMirrorType: (mirrorType: MirrorType) => void;
|
|
2871
2981
|
|
|
@@ -2874,7 +2984,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2874
2984
|
* @param deviceId ID of the audio playback device. Call [enumerateDevices](#enumeratedevices) to get device ID.
|
|
2875
2985
|
* @return
|
|
2876
2986
|
* @notes You can call this API before or after the user joins a room.
|
|
2877
|
-
* @
|
|
2987
|
+
* @group Audio Management
|
|
2988
|
+
* @order 1
|
|
2878
2989
|
*/
|
|
2879
2990
|
setAudioPlaybackDevice: (deviceId: string) => Promise<void>;
|
|
2880
2991
|
|
|
@@ -2886,9 +2997,10 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2886
2997
|
* @param mediaType Media stream type, used for specifying whether to publish audio stream or video stream.
|
|
2887
2998
|
* @param streamIndex Video stream properties
|
|
2888
2999
|
* @return Calling this API when the audio and video are playing will also return a Promise.
|
|
2889
|
-
* @region Room Management
|
|
2890
3000
|
* @note + Call this API to start playback if the audio and/or video is not playing.
|
|
2891
3001
|
* + Call this API once to start both audio and video playbacks when they do not start.
|
|
3002
|
+
* @group Video Management
|
|
3003
|
+
* @order 25
|
|
2892
3004
|
*/
|
|
2893
3005
|
play: (userId?: string, mediaType?: MediaType, streamIndex?: StreamIndex) => Promise<void>;
|
|
2894
3006
|
|
|
@@ -2899,7 +3011,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2899
3011
|
* @notes + Calling this API does not change the capture state and the transmission state of the remote clients.
|
|
2900
3012
|
* + Calling this API does not cancel the subscription or change any subscription configuration.
|
|
2901
3013
|
* + To resume, call [resumeAllSubscribedStream](#resumeallsubscribedstream).
|
|
2902
|
-
* @
|
|
3014
|
+
* @group Audio & Video Transport
|
|
3015
|
+
* @order 15
|
|
2903
3016
|
*/
|
|
2904
3017
|
pauseAllSubscribedStream: (mediaType: MediaType) => Promise<void>;
|
|
2905
3018
|
|
|
@@ -2909,18 +3022,20 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2909
3022
|
* @return
|
|
2910
3023
|
* @notes + Calling this API does not change the capture state and the transmission state of the remote clients.
|
|
2911
3024
|
* + Calling this API does not change any subscription configuration.
|
|
2912
|
-
* @
|
|
3025
|
+
* @group Audio & Video Transport
|
|
3026
|
+
* @order 16
|
|
2913
3027
|
*/
|
|
2914
3028
|
resumeAllSubscribedStream: (mediaType: MediaType) => Promise<void>;
|
|
2915
3029
|
|
|
2916
3030
|
/**
|
|
2917
3031
|
* @brief Send point-to-point text messages to a specified user in the room.
|
|
2918
|
-
*
|
|
3032
|
+
* The recipient receives the message via [onUserMessageReceived](104479#onusermessagereceived) once the message is sent successfully.
|
|
2919
3033
|
* @param userId User ID of the recipient
|
|
2920
3034
|
* @param message Text to be sent within 64 KB
|
|
2921
3035
|
* @return
|
|
2922
3036
|
* @notes Call [joinRoom](#joinroom) to join the room before calling this API.
|
|
2923
|
-
* @
|
|
3037
|
+
* @group Message
|
|
3038
|
+
* @order 0
|
|
2924
3039
|
*/
|
|
2925
3040
|
sendUserMessage: (userId: string, message: string) => Promise<unknown> | undefined;
|
|
2926
3041
|
|
|
@@ -2931,25 +3046,28 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2931
3046
|
* @param message Binary to be sent within 64 KB
|
|
2932
3047
|
* @return
|
|
2933
3048
|
* @notes Call [joinRoom](#joinroom) to join the room before calling this API.
|
|
2934
|
-
* @
|
|
3049
|
+
* @group Message
|
|
3050
|
+
* @order 1
|
|
2935
3051
|
*/
|
|
2936
3052
|
sendUserBinaryMessage: (userId: string, message: ArrayBuffer) => Promise<unknown>;
|
|
2937
3053
|
|
|
2938
3054
|
/**
|
|
2939
3055
|
* @brief Send text messaging to all other users in the room.
|
|
2940
|
-
*
|
|
3056
|
+
* Users in the room will receive message via [onRoomMessageReceived](104479#onroommessagereceived) once the message is sent successfully.
|
|
2941
3057
|
* @param message Text to be sent within 64 KB
|
|
2942
3058
|
* @return
|
|
2943
|
-
* @
|
|
3059
|
+
* @group Message
|
|
3060
|
+
* @order 5
|
|
2944
3061
|
*/
|
|
2945
3062
|
sendRoomMessage: (message: string) => Promise<any> | undefined;
|
|
2946
3063
|
|
|
2947
3064
|
/**
|
|
2948
3065
|
* @brief Send binary messaging to all other users in the room.
|
|
2949
|
-
*
|
|
3066
|
+
* Users in the room will receive binary message via [onRoomBinaryMessageReceived](104479#onroombinarymessagereceived) once the message is sent successfully.
|
|
2950
3067
|
* @param message Binary message to be sent within 64 KB
|
|
2951
3068
|
* @return
|
|
2952
|
-
* @
|
|
3069
|
+
* @group Message
|
|
3070
|
+
* @order 6
|
|
2953
3071
|
*/
|
|
2954
3072
|
sendRoomBinaryMessage: (message: ArrayBuffer) => Promise<any> | undefined;
|
|
2955
3073
|
|
|
@@ -2962,24 +3080,26 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2962
3080
|
* @notes + Call this API to add SEI message to the video frame captured by the internal video capture module.
|
|
2963
3081
|
* + SDK will abandon the SEI message if no video frame in 2s after you call this API.
|
|
2964
3082
|
* + Users receiving the stream will receive the SEI message via [onSEIMessageReceived](104479#onseimessagereceived) once the SEI message is sent successfully.
|
|
2965
|
-
* @
|
|
3083
|
+
* @group Message
|
|
3084
|
+
* @order 10
|
|
2966
3085
|
*/
|
|
2967
3086
|
sendSEIMessage: (streamIndex: StreamIndex, message: Uint8Array | string, repeatCount: number) => void;
|
|
2968
3087
|
|
|
2969
3088
|
/**
|
|
2970
|
-
* @brief
|
|
2971
|
-
* @param descriptions
|
|
2972
|
-
*
|
|
2973
|
-
*
|
|
2974
|
-
*
|
|
2975
|
-
* @notes +
|
|
2976
|
-
* +
|
|
2977
|
-
* + When using mobile
|
|
2978
|
-
* +
|
|
2979
|
-
* + If
|
|
2980
|
-
* +
|
|
2981
|
-
* + This
|
|
2982
|
-
*
|
|
3089
|
+
* @brief Set the video stream configurations from the video publishing end.
|
|
3090
|
+
* @param descriptions The configurations of multiple video streams to be published. The resolution set is the maximum resolution for each stream.
|
|
3091
|
+
* Up to 3 sets of configurations can be set. When there are more than 3 sets, the values of the first 3 sets will be used.
|
|
3092
|
+
* When multiple configurations are set, the resolution and frame rate must be arranged in descending order. For better compatibility, it is recommended that the ratio between the maximum level resolution and other level resolutions be an integer multiple.
|
|
3093
|
+
* When the resolution of the first stream is greater than or equal to 540P, it supports publishing 3 streams; when it is between 270P (inclusive) and 450P (inclusive), it supports publishing 2 streams; when it is 180P or below, you cannot enable simulcasting.
|
|
3094
|
+
* @notes + Before calling this method, the SDK defaults to publishing a stream with a resolution of 640 × 480 pixels, a frame rate of 15 FPS, and a maximum encoding bitrate of 600 Kbps.
|
|
3095
|
+
* + When publishing a single stream, you can call this method before or after publishing the video stream. After the video stream is published, dynamic switching between single stream and multiple streams is not supported, and modifying the parameters of the published multiple streams is not supported.
|
|
3096
|
+
* + When using a mobile device to publish a video stream in portrait mode, the set resolution width and height are reversed in the actual streaming parameters. For example, when setting the sending resolution to 640 × 480 pixels, the actual streaming parameters are 480 × 640 pixels.
|
|
3097
|
+
* + If the set parameters are not supported by the browser, the RTC SDK will capture and encode based on the parameter range supported by the browser, and notify the actual parameters through the [onLocalVideoSizeChanged](104479#onlocalvideosizechanged) callback.
|
|
3098
|
+
* + If you want to simulcast, you need to disable automatic publishing, call this method and [enableSimulcastMode](#enablesimulcastmode) to enable multiple stream mode, and then call [publishStream](#publishstream) to manually publish the audio and video streams.
|
|
3099
|
+
* + If this method is called to set multiple resolutions but multiple stream mode is not enabled, the SDK will default to publishing the stream with the highest resolution. If multiple stream publishing is enabled but only one set of stream parameters is set, the SDK will automatically fill in 1-2 sets of small stream parameters.
|
|
3100
|
+
* + This method is applicable to video streams captured by the camera. For setting the screen sharing stream parameters, refer to [setScreenEncoderConfig](#setscreenencoderconfig).
|
|
3101
|
+
* @group Video Management
|
|
3102
|
+
* @order 35
|
|
2983
3103
|
*/
|
|
2984
3104
|
setVideoEncoderConfig: (descriptions: VideoEncoderConfig | VideoEncoderConfig[]) => Promise<void>;
|
|
2985
3105
|
|
|
@@ -2989,6 +3109,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2989
3109
|
* @param description The encoding configuration of the screen-sharing stream.
|
|
2990
3110
|
* @notes + The default parameters are 1920 × 1080 px, 15 FPS, with 3000 Kbps max bitrate.
|
|
2991
3111
|
* + We recommend that you set the encoding configuration before video capture. Otherwise, the video will be captured based on the default configuration.
|
|
3112
|
+
* @group Screen Sharing
|
|
3113
|
+
* @order 5
|
|
2992
3114
|
*/
|
|
2993
3115
|
setScreenEncoderConfig: (description: ScreenEncoderConfig) => Promise<void>;
|
|
2994
3116
|
|
|
@@ -2998,17 +3120,19 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
2998
3120
|
* @param remoteVideoConfig The parameters you expect to configure for the remote video stream.
|
|
2999
3121
|
* @notes + This API only works after the publisher calls [enableSimulcastMode](#enablesimulcastmode) to enable publishing multiple video streams, in which case the subscriber will receive a stream that is closest to the set configuration.
|
|
3000
3122
|
* + If you don't call this API after the publisher enables the function of publishing multiple streams, you will receive by default the video stream with the largest resolution set by the publisher.
|
|
3001
|
-
* + You should call this API in the room. If you want to call it before entering the room, you should set the `remoteVideoConfig` in the roomConfig` when calling [joinRoom](#joinroom).
|
|
3002
|
-
* @
|
|
3123
|
+
* + You should call this API in the room. If you want to call it before entering the room, you should set the `remoteVideoConfig` in the `roomConfig` when calling [joinRoom](#joinroom).
|
|
3124
|
+
* @group Audio & Video Transport
|
|
3125
|
+
* @order 20
|
|
3003
3126
|
*/
|
|
3004
3127
|
setRemoteVideoConfig: (userId: string, remoteVideoConfig: RemoteVideoConfig) => Promise<void>;
|
|
3005
3128
|
|
|
3006
3129
|
/**
|
|
3007
|
-
* @region Video Management
|
|
3008
3130
|
* @brief Enables the simulcast mode of the video stream captured by the camera at the publishing end.imulcasting, including resolution, frame rate, bitrate, scale mode, fallback strategy under poor network conditions.
|
|
3009
3131
|
* @param enabled
|
|
3010
3132
|
* @param + You must call this API before publishing the video streams.
|
|
3011
|
-
*
|
|
3133
|
+
* + After enabling the simulcast mode, SDK automatically sets the encoding parameters for the video streams. For manual setting, call [setVideoEncoderConfig](#setvideoencoderconfig).
|
|
3134
|
+
* @group Audio & Video Transport
|
|
3135
|
+
* @order 25
|
|
3012
3136
|
*/
|
|
3013
3137
|
enableSimulcastMode: (enabled: boolean) => boolean;
|
|
3014
3138
|
|
|
@@ -3022,7 +3146,6 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3022
3146
|
* It is recommended to set to greater than or equal to 200 milliseconds; when less than 10 milliseconds, the behavior is undefined.
|
|
3023
3147
|
* + `≤ 0`: Disable the volume prompt function.
|
|
3024
3148
|
* + `> 0`: Enable the volume prompt function and set the time interval for receiving the volume prompt callback. In milliseconds.
|
|
3025
|
-
* @region Room Management
|
|
3026
3149
|
*/
|
|
3027
3150
|
setAudioVolumeIndicationInterval: (interval?: number) => void;
|
|
3028
3151
|
|
|
@@ -3032,7 +3155,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3032
3155
|
* @notes With the prompt on, you can:
|
|
3033
3156
|
* + Get the information of the audio stream captured by the local microphone and screen audio stream through [onLocalAudioPropertiesReport](104479#onlocalaudiopropertiesreport).
|
|
3034
3157
|
* + Get the information of the subscribed remote audio streams through [onRemoteAudioPropertiesReport](104479#onremoteaudiopropertiesreport).
|
|
3035
|
-
* @
|
|
3158
|
+
* @group Audio Management
|
|
3159
|
+
* @order 35
|
|
3036
3160
|
*/
|
|
3037
3161
|
enableAudioPropertiesReport: (config?: AudioPropertiesConfig) => void;
|
|
3038
3162
|
|
|
@@ -3040,9 +3164,12 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3040
3164
|
* @brief Starts pushing media streams to CDN and sets the relevant configurations.
|
|
3041
3165
|
* @param transcode Configurations to be set when pushing media streams to CDN.
|
|
3042
3166
|
* @return
|
|
3043
|
-
* @notes +
|
|
3167
|
+
* @notes + Before calling this API,you need to enable Push to CDN on the [console](https://console.byteplus.com/rtc/workplaceRTC).
|
|
3168
|
+
* + After calling this API, you will receive the pushing a mixed stream to CDN events via [onStreamMixingEvent](104479#onstreammixingevent).
|
|
3169
|
+
* + If you have subscribed to the push-to-CDN server callback in the [console](https://console.byteplus.com/rtc/cloudRTC?tab=callback), calling this API will receive a [TranscodeStarted](https://docs.byteplus.com/en/byteplus-rtc/docs/75125#transcodestarted) server callback notification. When calling this API repeatedly, subsequent calls to this API will trigger both [TranscodeStarted](https://docs.byteplus.com/en/byteplus-rtc/docs/75125#transcodestarted) and [TranscodeUpdated](https://docs.byteplus.com/en/byteplus-rtc/docs/75125#transcodeupdated) callbacks.
|
|
3044
3170
|
* + Call [stopLiveTranscoding](#stoplivetranscoding) to stop pushing mixed streams to CDN.
|
|
3045
|
-
* @
|
|
3171
|
+
* @group Push to CDN
|
|
3172
|
+
* @order 5
|
|
3046
3173
|
*/
|
|
3047
3174
|
startLiveTranscoding: (transcode: LiveTranscodeConfig) => Promise<void>;
|
|
3048
3175
|
|
|
@@ -3051,6 +3178,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3051
3178
|
* After calling [startLiveTranscoding](104478#startlivetranscoding) to enable the function of pushing streams to CDN, you can call this API to update the relevant configurations.
|
|
3052
3179
|
* @param transcode Updated configurations. Some of the configurations cannot be updated. See [LiveTranscodeConfig](104481#livetranscodeconfig) for specific indications.
|
|
3053
3180
|
* @return
|
|
3181
|
+
* @group Push to CDN
|
|
3182
|
+
* @order 6
|
|
3054
3183
|
*/
|
|
3055
3184
|
updateLiveTranscoding: (transcode: Partial<LiveTranscodeConfig>) => Promise<void>;
|
|
3056
3185
|
|
|
@@ -3058,7 +3187,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3058
3187
|
* @brief Stop pushing media streams to CDN
|
|
3059
3188
|
* For starting pushing media streams to CDN. Refer to [startLiveTranscoding](104478#startlivetranscoding).
|
|
3060
3189
|
* @return
|
|
3061
|
-
* @
|
|
3190
|
+
* @group Push to CDN
|
|
3191
|
+
* @order 7
|
|
3062
3192
|
*/
|
|
3063
3193
|
stopLiveTranscoding: () => Promise<void>;
|
|
3064
3194
|
|
|
@@ -3068,7 +3198,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3068
3198
|
* @param businessId Your customized businessId
|
|
3069
3199
|
* BusinessId is a tag, and you can customize its granularity.
|
|
3070
3200
|
* @notes You must call this API before the [joinRoom](#joinroom) API, otherwise it will be invalid.
|
|
3071
|
-
* @
|
|
3201
|
+
* @group Engine Management
|
|
3202
|
+
* @order 5
|
|
3072
3203
|
*/
|
|
3073
3204
|
setBusinessId: (businessId: string) => boolean;
|
|
3074
3205
|
|
|
@@ -3082,7 +3213,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3082
3213
|
* + When you call this API, the other users in the room will be informed via the related callback:
|
|
3083
3214
|
* - Switch from `false` to `true`: [onUserJoined](104479#onuserjoined)
|
|
3084
3215
|
* - Switch from `true` to `false`: [onUserLeave](104479#onuserleave)
|
|
3085
|
-
* @
|
|
3216
|
+
* @group Room Management
|
|
3217
|
+
* @order 10
|
|
3086
3218
|
*/
|
|
3087
3219
|
setUserVisibility: (enable: boolean) => Promise<void>;
|
|
3088
3220
|
|
|
@@ -3092,7 +3224,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3092
3224
|
* @param index specify a stream index.
|
|
3093
3225
|
* @param track specify a video track. See [MediaStreamTrack](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack).
|
|
3094
3226
|
* @return
|
|
3095
|
-
* @
|
|
3227
|
+
* @group Video Management
|
|
3228
|
+
* @order 15
|
|
3096
3229
|
*/
|
|
3097
3230
|
setExternalVideoTrack: (index: StreamIndex, track: MediaStreamTrack) => Promise<void>;
|
|
3098
3231
|
|
|
@@ -3102,7 +3235,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3102
3235
|
* @param index specify a stream index.
|
|
3103
3236
|
* @param track specify an audio track. See [MediaStreamTrack](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack).
|
|
3104
3237
|
* @return
|
|
3105
|
-
* @
|
|
3238
|
+
* @group Audio Management
|
|
3239
|
+
* @order 15
|
|
3106
3240
|
*/
|
|
3107
3241
|
setExternalAudioTrack: (index: StreamIndex, track: MediaStreamTrack) => Promise<void>;
|
|
3108
3242
|
|
|
@@ -3112,7 +3246,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3112
3246
|
* @param index audio stream index
|
|
3113
3247
|
* @param videoSourceType Type of the module for video capture
|
|
3114
3248
|
* @return
|
|
3115
|
-
* @
|
|
3249
|
+
* @group Video Management
|
|
3250
|
+
* @order 10
|
|
3116
3251
|
*/
|
|
3117
3252
|
setVideoSourceType: (index: StreamIndex, videoSourceType: VideoSourceType) => Promise<void>;
|
|
3118
3253
|
|
|
@@ -3122,13 +3257,16 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3122
3257
|
* @param index audio stream index
|
|
3123
3258
|
* @param audioSourceType Type of the module for video capture
|
|
3124
3259
|
* @return
|
|
3260
|
+
* @group Audio Management
|
|
3261
|
+
* @order 10
|
|
3125
3262
|
*/
|
|
3126
3263
|
setAudioSourceType: (index: StreamIndex, audioSourceType: AudioSourceType) => Promise<void>;
|
|
3127
3264
|
|
|
3128
3265
|
/**
|
|
3129
3266
|
* @brief Create an audio mixing manager object
|
|
3130
3267
|
* @return audio mixing manager object
|
|
3131
|
-
* @
|
|
3268
|
+
* @group Audio Mixing
|
|
3269
|
+
* @order 0
|
|
3132
3270
|
*/
|
|
3133
3271
|
getAudioMixingManager: () => IAudioMixingManager;
|
|
3134
3272
|
|
|
@@ -3137,6 +3275,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3137
3275
|
* @param config Configuration of the internal audio capture such as, disabling audio 3A processing. Refer to [MediaTrackConstraints](https://developer.mozilla.org/zh-CN/docs/Web/API/MediaTrackConstraints) for more details.
|
|
3138
3276
|
* @return
|
|
3139
3277
|
* @notes You should call this API before starting audio capture and publishing streams.
|
|
3278
|
+
* @group Audio Management
|
|
3279
|
+
* @order 30
|
|
3140
3280
|
*/
|
|
3141
3281
|
setAudioCaptureConfig: (config: TrackCaptureConfig) => Promise<void>;
|
|
3142
3282
|
|
|
@@ -3154,7 +3294,7 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3154
3294
|
|
|
3155
3295
|
/**
|
|
3156
3296
|
* @brief Log in to the RTM server.
|
|
3157
|
-
*
|
|
3297
|
+
* Call this method before users within the same `appID` can communicate with each other via messages.
|
|
3158
3298
|
* @param token Token for authentication.
|
|
3159
3299
|
* During testing, you can use generate a temporary Token on [Console](https://console.byteplus.com/auth/login), and fill in any value with `roomId`.
|
|
3160
3300
|
* To officially go live, you need to use the implement token generation at your server. The `roomId` field should be empty. See [Authentication with Token](70121).
|
|
@@ -3162,12 +3302,16 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3162
3302
|
* @return
|
|
3163
3303
|
* @notes + Call [logout](#logout) to log out the IM server.
|
|
3164
3304
|
* + In the same App ID, the user ID of each user must be unique. The user will be logged out when a user with the same userID joins the room because of the error of `RTM_DUPLICATE_LOGIN`.
|
|
3305
|
+
* @group Message
|
|
3306
|
+
* @order 15
|
|
3165
3307
|
*/
|
|
3166
3308
|
login: (token: string | null, userId: string) => Promise<void>;
|
|
3167
3309
|
|
|
3168
3310
|
/**
|
|
3169
|
-
* After calling this API to logout you are not able to call APIs to send messages and server messages.
|
|
3311
|
+
* @brief After calling this API to logout you are not able to call APIs to send messages and server messages.
|
|
3170
3312
|
* @return
|
|
3313
|
+
* @group Message
|
|
3314
|
+
* @order 16
|
|
3171
3315
|
*/
|
|
3172
3316
|
logout: () => Promise<void>;
|
|
3173
3317
|
|
|
@@ -3176,7 +3320,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3176
3320
|
* @param token updated token
|
|
3177
3321
|
* @return
|
|
3178
3322
|
* @notes + Call this API to refresh the token after the token has expired with no need for calling [login](#login).
|
|
3179
|
-
*
|
|
3323
|
+
* + You will be informed of the expiration of the token if you tried to login with an expired token or during a reconnection. If the token expired after the user has logged in, no actions need to be taken.
|
|
3324
|
+
* @group Message
|
|
3325
|
+
* @order 20
|
|
3180
3326
|
*/
|
|
3181
3327
|
updateLoginToken: (token: string | null) => Promise<void>;
|
|
3182
3328
|
|
|
@@ -3185,6 +3331,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3185
3331
|
* @param userId ID of the user whose status intended to know
|
|
3186
3332
|
* @return
|
|
3187
3333
|
* @notes Call [login](#login) before calling this API.
|
|
3334
|
+
* @group Message
|
|
3335
|
+
* @order 25
|
|
3188
3336
|
*/
|
|
3189
3337
|
getPeerOnlineStatus: (userId: string) => Promise<USER_ONLINE_STATUS>;
|
|
3190
3338
|
|
|
@@ -3194,7 +3342,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3194
3342
|
* @param message Text message within 64 KB.
|
|
3195
3343
|
* @return
|
|
3196
3344
|
* @notes + Call [login](#login) before calling this API.
|
|
3197
|
-
*
|
|
3345
|
+
* + The recipient must be logged into the server and will receive the text message via [onUserMessageReceivedOutsideRoom](104479#onusermessagereceivedoutsideroom) if the message has been sent successfully.
|
|
3346
|
+
* @group Message
|
|
3347
|
+
* @order 30
|
|
3198
3348
|
*/
|
|
3199
3349
|
sendUserMessageOutsideRoom: (userId: string, message: string) => Promise<any>;
|
|
3200
3350
|
|
|
@@ -3202,9 +3352,11 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3202
3352
|
* @brief Send point-to-point (P2P) binary message to a user.
|
|
3203
3353
|
* @param userId ID of the recipient
|
|
3204
3354
|
* @param message Binary message within 64 KB
|
|
3205
|
-
* @return
|
|
3206
|
-
*
|
|
3207
|
-
*
|
|
3355
|
+
* @return
|
|
3356
|
+
* @notes + Call [login](#login) before calling this API.
|
|
3357
|
+
* + The recipient must be logged into the server and will receive the text message via [EngineEventsTypes.onUserBinaryMessageReceivedOutsideRoom](104479#onuserbinarymessagereceivedoutsideroom) if the message has been sent successfully.
|
|
3358
|
+
* @group Message
|
|
3359
|
+
* @order 31
|
|
3208
3360
|
*/
|
|
3209
3361
|
sendUserBinaryMessageOutsideRoom: (userId: string, message: ArrayBuffer) => Promise<any>;
|
|
3210
3362
|
|
|
@@ -3214,7 +3366,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3214
3366
|
* @param url Address of the IM server
|
|
3215
3367
|
* @return
|
|
3216
3368
|
* @notes + Call [login](#login) before calling this API.
|
|
3217
|
-
*
|
|
3369
|
+
* + [onServerParamsSetResult](104479#onserverparamssetresult) notifies you whether the setting successes.
|
|
3370
|
+
* @group Message
|
|
3371
|
+
* @order 35
|
|
3218
3372
|
*/
|
|
3219
3373
|
setServerParams: (signature: string, url: string) => Promise<any>;
|
|
3220
3374
|
|
|
@@ -3222,7 +3376,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3222
3376
|
* @brief Send point-to-point (P2P) text message to the server.
|
|
3223
3377
|
* @param message Text message within 64 KB.
|
|
3224
3378
|
* @return
|
|
3225
|
-
* @notes
|
|
3379
|
+
* @notes Before sending a message to the server, you must first call [login](#login) to complete the login process.
|
|
3380
|
+
* @group Message
|
|
3381
|
+
* @order 36
|
|
3226
3382
|
*/
|
|
3227
3383
|
sendServerMessage: (message: string) => Promise<any>;
|
|
3228
3384
|
|
|
@@ -3230,7 +3386,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3230
3386
|
* @brief Send point-to-point (P2P) binary message to the server.
|
|
3231
3387
|
* @param message Binary message within 64 KB.
|
|
3232
3388
|
* @return
|
|
3233
|
-
* @notes
|
|
3389
|
+
* @notes Before sending a message to the server, you must first call [login](#login) to complete the login process.
|
|
3390
|
+
* @group Message
|
|
3391
|
+
* @order 37
|
|
3234
3392
|
*/
|
|
3235
3393
|
sendServerBinaryMessage: (message: ArrayBuffer) => Promise<any>;
|
|
3236
3394
|
|
|
@@ -3253,7 +3411,7 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3253
3411
|
/**
|
|
3254
3412
|
* @hidden
|
|
3255
3413
|
* @brief Starts publishing a public media stream.
|
|
3256
|
-
* @param publicStreamId The public stream's ID.
|
|
3414
|
+
* @param publicStreamId The public stream's ID. The string must conform to the regular expression: `[a-zA-Z0-9_@\-\.]{1,128}`.
|
|
3257
3415
|
* @param publicStreamParam The public stream's parameters.
|
|
3258
3416
|
* A public stream can contain several media streams and will appears as the designated layout.
|
|
3259
3417
|
* If the designated media stream is not published yet, the public stream will automatically update once the media stream is published.
|
|
@@ -3263,6 +3421,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3263
3421
|
* + Users with different `userID` can call this API with the same stream ID to update the parameters.
|
|
3264
3422
|
* + Call this API with different stream ID to publish multiple public streams.
|
|
3265
3423
|
* + Call [stopPushPublicStream](#stoppushpublicstream) to stop publishing the public stream.
|
|
3424
|
+
* @group Public Stream
|
|
3425
|
+
* @order 0
|
|
3266
3426
|
*/
|
|
3267
3427
|
startPushPublicStream: (publicStreamId: string, publicStreamParam: PublicStreamConfig) => Promise<void>;
|
|
3268
3428
|
|
|
@@ -3274,6 +3434,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3274
3434
|
* The public stream must be published by the current user.
|
|
3275
3435
|
* @param publicStreamParam The public stream's parameters.
|
|
3276
3436
|
* @return
|
|
3437
|
+
* @group Public Stream
|
|
3438
|
+
* @order 1
|
|
3277
3439
|
*/
|
|
3278
3440
|
updatePublicStreamParam: (publicStreamId: string, publicStreamParam: Partial<PublicStreamConfig>) => Promise<void>;
|
|
3279
3441
|
|
|
@@ -3285,6 +3447,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3285
3447
|
* @param publicStreamId The public stream's ID.
|
|
3286
3448
|
* The public stream must be published by the current user.
|
|
3287
3449
|
* @return
|
|
3450
|
+
* @group Public Stream
|
|
3451
|
+
* @order 2
|
|
3288
3452
|
*/
|
|
3289
3453
|
stopPushPublicStream: (publicStreamId: string) => Promise<void>;
|
|
3290
3454
|
|
|
@@ -3299,6 +3463,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3299
3463
|
* + After calling this API, you will receive [onFirstPublicStreamVideoFrameDecoded](104479#onfirstpublicstreamvideoframedecoded) and [onFirstPublicStreamAudioFrameDecoded](104479#onfirstpublicstreamaudioframedecoded) once the first frame has been decoded.
|
|
3300
3464
|
* + If the public stream contains SEI message, you will receive the message by be informed through [onPublicStreamSEIMessageReceived](104479#onpublicstreamseimessagereceived).
|
|
3301
3465
|
* + Call [stopPlayPublicStream](#stopplaypublicstream) to unsubscribing from the public stream.
|
|
3466
|
+
* @group Public Stream
|
|
3467
|
+
* @order 5
|
|
3302
3468
|
*/
|
|
3303
3469
|
startPlayPublicStream: (publicStreamId: string) => Promise<void>;
|
|
3304
3470
|
|
|
@@ -3308,6 +3474,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3308
3474
|
* Call [startPlayPublicStream](104478#startplaypublicstream) to subscribe to the public stream.
|
|
3309
3475
|
* @param publicStreamId The public stream's ID.
|
|
3310
3476
|
* @return
|
|
3477
|
+
* @group Public Stream
|
|
3478
|
+
* @order 6
|
|
3311
3479
|
*/
|
|
3312
3480
|
stopPlayPublicStream: (publicStreamId: string) => Promise<void>;
|
|
3313
3481
|
|
|
@@ -3316,11 +3484,12 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3316
3484
|
* @brief Sets the player information and rendering mode for the public stream.
|
|
3317
3485
|
* @param publicStreamId The public stream's ID.
|
|
3318
3486
|
* @param videoPlayerOption Player information and rendering mode.
|
|
3487
|
+
* @group Public Stream
|
|
3488
|
+
* @order 10
|
|
3319
3489
|
*/
|
|
3320
3490
|
setPublicStreamVideoPlayer: (publicStreamId: string, videoPlayerOption: Omit<VideoPlayerOption, "userId">) => void;
|
|
3321
3491
|
|
|
3322
3492
|
/**
|
|
3323
|
-
* @region Video Management
|
|
3324
3493
|
* @brief Set the placeholder image during local video capture pause
|
|
3325
3494
|
* @param index
|
|
3326
3495
|
* @param filePath Image path in Http protocal; or Blob object.
|
|
@@ -3329,12 +3498,16 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3329
3498
|
* @notes + Only available to Chrome browser on Mac
|
|
3330
3499
|
* + It's recommended to call this API before stopping video capture to avoid blank frame in video recording.
|
|
3331
3500
|
* + You cannot see the image during local preview.
|
|
3501
|
+
* @group Video Management
|
|
3502
|
+
* @order 40
|
|
3332
3503
|
*/
|
|
3333
3504
|
setDummyCaptureImagePath: (index: StreamIndex, filePath: string) => Promise<void>;
|
|
3334
3505
|
|
|
3335
3506
|
/**
|
|
3336
3507
|
* @brief Get the default parameters of `LiveTranscodeConfig`.
|
|
3337
|
-
* @return The default parameters of `LiveTranscodeConfig
|
|
3508
|
+
* @return The default parameters of `LiveTranscodeConfig`.
|
|
3509
|
+
* @group Push to CDN
|
|
3510
|
+
* @order 0
|
|
3338
3511
|
*/
|
|
3339
3512
|
defaultTranscoding: () => Required<LiveTranscodeConfig>;
|
|
3340
3513
|
|
|
@@ -3347,6 +3520,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3347
3520
|
* @notes + You must call this API before joining the room.
|
|
3348
3521
|
* + After you enable the fallback, you will receive [onSimulcastSubscribeFallback](104479#onsimulcastsubscribefallback) and [onRemoteVideoSizeChanged](104479#onremotevideosizechanged) when the resolution of your subscribed stream is lowered or restored.
|
|
3349
3522
|
* + You can set media stream fallback using API or cloud configuration. The latter takes a higher priority.
|
|
3523
|
+
* @group Audio & Video Transport
|
|
3524
|
+
* @order 30
|
|
3350
3525
|
*/
|
|
3351
3526
|
setSubscribeFallbackOption: (option: SubscribeFallbackOption) => boolean;
|
|
3352
3527
|
|
|
@@ -3358,6 +3533,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3358
3533
|
* @param priority The priority of the remote user's media stream
|
|
3359
3534
|
* @return + `true` Success
|
|
3360
3535
|
* + `false` Failure
|
|
3536
|
+
* @group Audio & Video Transport
|
|
3537
|
+
* @order 35
|
|
3361
3538
|
*/
|
|
3362
3539
|
setRemoteUserPriority: (userId: string, priority: RemoteUserPriority) => boolean;
|
|
3363
3540
|
|
|
@@ -3368,39 +3545,50 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3368
3545
|
* @return Resolve when the test ends.
|
|
3369
3546
|
* @notes + You can call this API whether the user is in the room.
|
|
3370
3547
|
* + Call [stopAudioPlaybackDeviceTest](#stopaudioplaybackdevicetest) to stop the playback test before moving on to the other device tests.
|
|
3548
|
+
* @group Device Management
|
|
3549
|
+
* @order 20
|
|
3371
3550
|
*/
|
|
3372
3551
|
startAudioPlaybackDeviceTest: (filePath: string, indicationInterval: number) => Promise<void>;
|
|
3373
3552
|
|
|
3374
3553
|
/**
|
|
3375
3554
|
* @brief Stop the playback test for the local audio device.
|
|
3376
3555
|
* @notes Call this API to stop the playback test started by calling [startAudioPlaybackDeviceTest](#startaudioplaybackdevicetest) before moving on to the other device tests.
|
|
3556
|
+
* @group Device Management
|
|
3557
|
+
* @order 21
|
|
3377
3558
|
*/
|
|
3378
3559
|
stopAudioPlaybackDeviceTest: () => void;
|
|
3379
3560
|
|
|
3380
3561
|
/**
|
|
3381
3562
|
* @brief Start the capture and playback test for local audio devices.
|
|
3382
|
-
*
|
|
3563
|
+
* We recommend to register [onLocalAudioPropertiesReport](104479#onlocalaudiopropertiesreport) callback via [enableAudioPropertiesReport](104478#enableaudiopropertiesreport). Once the test starts, you can get the volume of the capturing audio by this callback.
|
|
3383
3564
|
* @param indicationInterval The time interval between each callback of [onAudioPlaybackDeviceTestVolume](104479#onaudioplaybackdevicetestvolume) via which you get informed of the playback volume during the test. We recommend setting it to 200 ms. The minimal value is 100 ms.
|
|
3384
3565
|
* @param onAutoplayFailed Autoplay fails due to the limitation of the browser. We recommend to execute `resume` as soon as the user clicks on the UI element.
|
|
3385
3566
|
* @return Resolve when the test ends.
|
|
3386
3567
|
* @notes + You can call this API whether the user is in a room.
|
|
3387
3568
|
* + You can call [setCaptureVolume]({{api}}#RTCEngine.setCaptureVolume) to adjust the capture volume during audio route testing. You cannot call [setPlaybackVolume]({{api}}#RTCEngine.setPlaybackVolume) during audio route testing.
|
|
3388
|
-
* + The audio capturing will stop and begins to play the recording in 30
|
|
3569
|
+
* + The audio capturing will stop and begins to play the recording in 30 seconds after calling this API. Before that, call [stopAudioDeviceRecordAndPlayTest](#stopaudiodevicerecordandplaytest) to stop capturing and start playing the recording.
|
|
3389
3570
|
* + You must stop the test before starting another test for audio devices.
|
|
3390
3571
|
* + Call [stopAudioDevicePlayTest](#stopaudiodeviceplaytest) to stop the test, including capturing and playing the recording.
|
|
3391
3572
|
* + This test performs locally and does not involve network connection testing.
|
|
3573
|
+
* @group Device Management
|
|
3574
|
+
* @order 25
|
|
3392
3575
|
*/
|
|
3393
3576
|
startAudioDeviceRecordTest: (indicationInterval: number, onAutoplayFailed?: (resume: () => Promise<any>) => any) => Promise<void>;
|
|
3394
3577
|
|
|
3395
3578
|
/**
|
|
3396
3579
|
* @brief Call this API to stop recording in the test and start to play the recording.
|
|
3580
|
+
* After calling [startAudioDeviceRecordTest](104478#startaudiodevicerecordtest), you need to call this API within 30 seconds. Otherwise, the recording will automatically stop and begin playing back the recorded audio.
|
|
3397
3581
|
* @notes After calling this API, the recording starts playing during which you can call [stopAudioDevicePlayTest](104478#stopaudiodeviceplaytest) to stop playing.
|
|
3582
|
+
* @group Device Management
|
|
3583
|
+
* @order 26
|
|
3398
3584
|
*/
|
|
3399
3585
|
stopAudioDeviceRecordAndPlayTest: () => void;
|
|
3400
3586
|
|
|
3401
3587
|
/**
|
|
3402
3588
|
* @brief Stop the capture and playback test for local audio devices which is started by calling [startAudioDeviceRecordTest](104478#startaudiodevicerecordtest).
|
|
3403
|
-
*
|
|
3589
|
+
* Before the test ends by itself, you can call this API to stop the recording or playing.
|
|
3590
|
+
* @group Device Management
|
|
3591
|
+
* @order 27
|
|
3404
3592
|
*/
|
|
3405
3593
|
stopAudioDevicePlayTest: () => void;
|
|
3406
3594
|
|
|
@@ -3409,23 +3597,32 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3409
3597
|
* @param profile A sound quality option consists of a set of audio profiles and applying each brings a different listening experience. Choose the appropriate audio quality to meet the requirement of the scenario.
|
|
3410
3598
|
* @notes You should call this API before starting audio capture and publishing streams.
|
|
3411
3599
|
* @return
|
|
3600
|
+
* @group Audio Management
|
|
3601
|
+
* @order 20
|
|
3412
3602
|
*/
|
|
3413
3603
|
setAudioProfile: (profile: AudioProfileType) => Promise<void>;
|
|
3414
3604
|
|
|
3605
|
+
/**
|
|
3606
|
+
* @hidden
|
|
3607
|
+
*/
|
|
3608
|
+
setAudioEncodeMaxBitrate: (maxBitrate: number) => Promise<void>;
|
|
3609
|
+
|
|
3415
3610
|
/**
|
|
3416
3611
|
* @brief Get the [MediaStreamTrack](https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack) of the local audios or videos.
|
|
3417
3612
|
* @param streamIndex Mainstream or screen-sharing stream.
|
|
3418
3613
|
* @param type Video or audio
|
|
3419
|
-
*
|
|
3420
|
-
*
|
|
3614
|
+
* Audio: Track of the sounds collected from the microphone, customized audio track, audio files, and the sound card.
|
|
3615
|
+
* Video: Track of the videos collected from the camera, customized video track and screen-sharings.
|
|
3421
3616
|
* @return `undefined` for the MediaStreamTrack does not exist. For example, the local media capturing has not started.
|
|
3422
3617
|
* @notes + Call this API after you start the local media capture or designate a customized MediaStreamTrack.
|
|
3423
|
-
*
|
|
3424
|
-
*
|
|
3425
|
-
*
|
|
3426
|
-
*
|
|
3427
|
-
*
|
|
3428
|
-
*
|
|
3618
|
+
* + Callback of the MediaStreamTrack will inform you by the event of `ended` that the local media capture stops, probably caused either by an API call or the removal of devices.
|
|
3619
|
+
* + You can get the following info from the MediaStreamTrack: video resolution, device ID, and volume. You can manage the track actions by the method of `stop` or `mute`. You can also change the properties of the stream, such as audio volume.
|
|
3620
|
+
* + We recommend to call RTC APIs to enable your app with the following capabilities instead of using mediaStreamTrack.<br/>
|
|
3621
|
+
*   - Get the video resolution or audio volume of the local streams: [onLocalStreamStats](104479#onlocalstreamstats)
|
|
3622
|
+
*   - Get device IDs: [enumerateDevices](#enumeratedevices)
|
|
3623
|
+
*   - Stop capturing: [stopAudioCapture](#stopaudiocapture), [stopVideoCapture](#stopvideocapture)
|
|
3624
|
+
* @group Custom Stream Processing
|
|
3625
|
+
* @order 0
|
|
3429
3626
|
*/
|
|
3430
3627
|
getLocalStreamTrack: (streamIndex: StreamIndex, type: "video" | "audio") => MediaStreamTrack | undefined;
|
|
3431
3628
|
|
|
@@ -3436,11 +3633,13 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3436
3633
|
* @param type Video or audio
|
|
3437
3634
|
* @return `undefined` for the MediaStreamTrack does not exist. For example, the local user has not subscribed to the remote stream.
|
|
3438
3635
|
* @notes + Call this API after the local user subscribe to the remote media stream.
|
|
3439
|
-
*
|
|
3440
|
-
*
|
|
3441
|
-
*
|
|
3442
|
-
*
|
|
3443
|
-
*
|
|
3636
|
+
* + Callback of the MediaStreamTrack will inform you by the event of `ended` that the remote media stream stops, probably caused by the API call of [unsubscribeStream](#unsubscribestream) or [unsubscribeScreen](#unsubscribescreen).
|
|
3637
|
+
* + You can get video resolution and audio volume from the MediaStreamTrack. You can manage the track actions by the method of `stop` or `mute`. You can also change the properties of the stream, such as audio volume.
|
|
3638
|
+
* + We recommend to call RTC APIs to enable your app with the following capabilities instead of using mediaStreamTrack.<br/>
|
|
3639
|
+
*   - Get the video resolution or audio volume of the remote streams: [onRemoteStreamStats]({{callback}}#onremotestreamstats)
|
|
3640
|
+
*   - Unsubscribe: [unsubscribeStream](#unsubscribestream), [unsubscribeScreen](#unsubscribescreen)
|
|
3641
|
+
* @group Custom Stream Processing
|
|
3642
|
+
* @order 1
|
|
3444
3643
|
*/
|
|
3445
3644
|
getRemoteStreamTrack: (userId: string, streamIndex: StreamIndex, type: "video" | "audio") => MediaStreamTrack | undefined;
|
|
3446
3645
|
|
|
@@ -3450,7 +3649,9 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3450
3649
|
* @param type Video or audio
|
|
3451
3650
|
* @return `undefined` for the MediaStreamTrack does not exist. For example, the public stream does not exist.
|
|
3452
3651
|
* @notes + Call this API after you start playing the public stream by calling [`stopPlayPublicStream`](#stopplaypublicstream).
|
|
3453
|
-
*
|
|
3652
|
+
* + Callback of the MediaStreamTrack will inform you the event of `ended` that the public stream stops, probably caused by the API call of [`stopPlayPublicStream`](#stopplaypublicstream).
|
|
3653
|
+
* @group Custom Stream Processing
|
|
3654
|
+
* @order 5
|
|
3454
3655
|
*/
|
|
3455
3656
|
getPublicStreamTrack: (id: string, type: "video" | "audio") => MediaStreamTrack | undefined;
|
|
3456
3657
|
|
|
@@ -3459,6 +3660,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3459
3660
|
* @param streamIndex The specified video stream.
|
|
3460
3661
|
* @notes + The snapshot is taken with all video effects on, like rotation, and mirroring.
|
|
3461
3662
|
* + You can take the snapshot either using SDK internal video capture or customized capture.
|
|
3663
|
+
* @group Video Snapshot
|
|
3664
|
+
* @order 0
|
|
3462
3665
|
*/
|
|
3463
3666
|
takeLocalSnapshot: (streamIndex: StreamIndex) => Promise<ImageData>;
|
|
3464
3667
|
|
|
@@ -3466,17 +3669,18 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3466
3669
|
* @brief Take a snapshot of the remote video.
|
|
3467
3670
|
* @param id The index of the user's stream or the index of the public stream.
|
|
3468
3671
|
* @param streamIndex The specified video stream.
|
|
3672
|
+
* @group Video Snapshot
|
|
3673
|
+
* @order 1
|
|
3469
3674
|
*/
|
|
3470
3675
|
takeRemoteSnapshot: (id: string, streamIndex: StreamIndex) => Promise<ImageData>;
|
|
3471
3676
|
|
|
3472
3677
|
/**
|
|
3473
3678
|
* @brief Registers an extension.
|
|
3679
|
+
* You can use the extension to implement features such as [Beauty Effects](https://docs.byteplus.com/byteplus-rtc/docs/148646), [Virtual Background](https://docs.byteplus.com/byteplus-rtc/docs/697417), and [AI Noise-Cancelling](https://docs.byteplus.com/byteplus-rtc/docs/148647).
|
|
3474
3680
|
* @param extension The extension instance.
|
|
3475
3681
|
* @return
|
|
3476
|
-
* @
|
|
3477
|
-
*
|
|
3478
|
-
*   + [Virtual Background](https://docs.byteplus.com/byteplus-rtc/docs/697417)
|
|
3479
|
-
*   + [AI Noise-Cancelling](https://docs.byteplus.com/byteplus-rtc/docs/148647)
|
|
3682
|
+
* @group Extensions
|
|
3683
|
+
* @order 0
|
|
3480
3684
|
*/
|
|
3481
3685
|
registerExtension: (extension: RTCExtension) => Promise<void>;
|
|
3482
3686
|
|
|
@@ -3487,10 +3691,11 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3487
3691
|
* After calling this method, you will receive the [onSubtitleStateChanged](104479#onsubtitlestatechanged) to inform you of whether subtitles are on.
|
|
3488
3692
|
* @param config Subtitle configrations.
|
|
3489
3693
|
* @return
|
|
3490
|
-
* @notes
|
|
3491
|
-
* You
|
|
3492
|
-
*
|
|
3493
|
-
*
|
|
3694
|
+
* @notes + You must call this method after joining the room.
|
|
3695
|
+
* + You can set your source language to Chinese by calling `joinRoom` and importing a json formatted string `"source_language": "zh"` through the parameter of extraInfo, to English by importing `"source_language": "en"` , and to Japanese by importing `"source_language": "ja"`.
|
|
3696
|
+
* + The language of your browser will be automatically set as the source language if you don't set it. If the language of your browser is not Chinese, English or Japanese, SDK will set Chinese as the source language.
|
|
3697
|
+
* @group Live Caption and Translation
|
|
3698
|
+
* @order 0
|
|
3494
3699
|
*/
|
|
3495
3700
|
startSubtitle: (config: RTCSubtitleConfig) => Promise<void>;
|
|
3496
3701
|
|
|
@@ -3498,6 +3703,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3498
3703
|
* @hidden currently not available
|
|
3499
3704
|
* @brief Turns off subtitles.
|
|
3500
3705
|
* After calling this method, you will receive the [onSubtitleStateChanged](104479#onsubtitlestatechanged) to inform you of whether subtitles are off.
|
|
3706
|
+
* @group Live Caption and Translation
|
|
3707
|
+
* @order 1
|
|
3501
3708
|
*/
|
|
3502
3709
|
stopSubtitle: () => void;
|
|
3503
3710
|
|
|
@@ -3510,6 +3717,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3510
3717
|
* @return + `true`: Success.
|
|
3511
3718
|
* + `false`: Failure.
|
|
3512
3719
|
* @notes You must call this API before joining the room. Calling it afterward is invalid.
|
|
3720
|
+
* @group Custom Stream Processing
|
|
3721
|
+
* @order 10
|
|
3513
3722
|
*/
|
|
3514
3723
|
setRemoteStreamRenderSync: (sync: boolean) => boolean;
|
|
3515
3724
|
|
|
@@ -3521,6 +3730,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3521
3730
|
* @notes + It is recommended to set the capture volume after the capture has started.
|
|
3522
3731
|
* + If capture has not yet started when you call this API, the setting will take effect after it starts.
|
|
3523
3732
|
* + The capture volume adjustment controls the audio stream before audio mixing.
|
|
3733
|
+
* @group Audio Management
|
|
3734
|
+
* @order 25
|
|
3524
3735
|
*/
|
|
3525
3736
|
setCaptureVolume: (streamIndex: StreamIndex, volume: number) => void;
|
|
3526
3737
|
|
|
@@ -3533,16 +3744,21 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3533
3744
|
* @notes + It is recommended to set the playback volume after the playing has started.
|
|
3534
3745
|
* + If the playing has not yet started when you call this API, the setting will take effect after it starts.
|
|
3535
3746
|
* + The playback volume cannot be adjusted in [Conference Mode](113547).
|
|
3747
|
+
* @group Audio Management
|
|
3748
|
+
* @order 26
|
|
3536
3749
|
*/
|
|
3537
3750
|
setPlaybackVolume: (userId: string, streamIndex: StreamIndex, volume: number) => void;
|
|
3538
3751
|
|
|
3539
3752
|
/**
|
|
3753
|
+
* @hidden
|
|
3540
3754
|
* @brief Adjust audio playback volume of a public stream.
|
|
3541
3755
|
* @param publicStreamId The Id of a specified public stream.
|
|
3542
3756
|
* @param volume The percentage of playback volume to the original volume in range of [0, 400]. The default value is 100%.
|
|
3543
3757
|
* For better call quality, it is recommended to set the value in range of [0, 100].
|
|
3544
3758
|
* @notes + It is recommended to set the playback volume after the playing has started.
|
|
3545
3759
|
* + If the playing has not yet started when you call this API, the setting will take effect after it starts.
|
|
3760
|
+
* @group Public Stream
|
|
3761
|
+
* @order 15
|
|
3546
3762
|
*/
|
|
3547
3763
|
setPublicStreamVolume: (publicStreamId: string, volume: number) => void;
|
|
3548
3764
|
|
|
@@ -3555,6 +3771,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3555
3771
|
* + Call [updateForwardStreamToRooms]({{api}}#RTCEngine.updateForwardStreamToRooms) to add or remove the target room(s).
|
|
3556
3772
|
* + Call [stopForwardStreamToRooms]({{api}}#RTCEngine.stopForwardStreamToRooms) to stop forwarding media stream to all rooms.
|
|
3557
3773
|
* + Call [pauseForwardStreamToAllRooms]({{api}}#RTCEngine.pauseForwardStreamToAllRooms) to pause forwarding media stream to all rooms.
|
|
3774
|
+
* @group Audio & Video Transport
|
|
3775
|
+
* @order 40
|
|
3558
3776
|
*/
|
|
3559
3777
|
startForwardStreamToRooms: (forwardStreamInfos: ForwardStreamInfo[]) => Promise<ForwardStreamStateInfo[]>;
|
|
3560
3778
|
|
|
@@ -3564,6 +3782,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3564
3782
|
* @return Status information for forwarding media stream across rooms.
|
|
3565
3783
|
* @notes + Users in the added room will receive [onUserJoined]({{callback}}#EngineEvents.onUserJoined) and [onUserPublishStream]({{callback}}#EngineEvents.onUserPublishStream)/[onUserPublishScreen]({{callback}}#EngineEvents.onUserPublishScreen).
|
|
3566
3784
|
* + Users in the removed room will receive [onUserUnpublishStream]({{callback}}#EngineEvents.onUserUnpublishStream)/[onUserUnpublishScreen]({{callback}}#EngineEvents.onUserUnpublishScreen) and [onUserLeave]({{callback}}#EngineEvents.onUserLeave).
|
|
3785
|
+
* @group Audio & Video Transport
|
|
3786
|
+
* @order 41
|
|
3567
3787
|
*/
|
|
3568
3788
|
updateForwardStreamToRooms: (forwardStreamInfos: ForwardStreamInfo[]) => Promise<ForwardStreamStateInfo[]>;
|
|
3569
3789
|
|
|
@@ -3573,6 +3793,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3573
3793
|
* @notes + Users in the former target rooms will receive [onUserUnpublishStream]({{callback}}#EngineEvents.onUserUnpublishStream)/[onUserUnpublishScreen]({{callback}}#EngineEvents.onUserUnpublishScreen) and [onUserLeave]({{callback}}#EngineEvents.onUserLeave).
|
|
3574
3794
|
* + Call [updateForwardStreamToRooms]({{api}}#RTCEngine.updateForwardStreamToRooms) to stop forwarding media stream to specific rooms.
|
|
3575
3795
|
* + Call [pauseForwardStreamToAllRooms]({{api}}#RTCEngine.pauseForwardStreamToAllRooms) and [resumeForwardStreamToAllRooms]({{api}}#RTCEngine.resumeForwardStreamToAllRooms) to pause and resume fowarding media stream to all rooms.
|
|
3796
|
+
* @group Audio & Video Transport
|
|
3797
|
+
* @order 42
|
|
3576
3798
|
*/
|
|
3577
3799
|
stopForwardStreamToRooms: () => Promise<ForwardStreamStateInfo[]>;
|
|
3578
3800
|
|
|
@@ -3581,6 +3803,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3581
3803
|
* After calling this API, call [resumeForwardStreamToAllRooms]({{api}}#RTCEngine.resumeForwardStreamToAllRooms) to resume.
|
|
3582
3804
|
* @return Status information for forwarding media stream across rooms.
|
|
3583
3805
|
* @notes Users in the target rooms will receive [onUserUnpublishStream]({{callback}}#EngineEvents.onUserUnpublishStream)/[onUserUnpublishScreen]({{callback}}#EngineEvents.onUserUnpublishScreen) and [onUserLeave]({{callback}}#EngineEvents.onUserLeave).
|
|
3806
|
+
* @group Audio & Video Transport
|
|
3807
|
+
* @order 43
|
|
3584
3808
|
*/
|
|
3585
3809
|
pauseForwardStreamToAllRooms: () => Promise<ForwardStreamStateInfo[]>;
|
|
3586
3810
|
|
|
@@ -3588,6 +3812,8 @@ export interface IRTCEngine extends EnhancedEventEmitter<IEngineEvents> {
|
|
|
3588
3812
|
* @brief Resume forwarding media stream to all rooms.
|
|
3589
3813
|
* @return Status information for forwarding media stream across rooms.
|
|
3590
3814
|
* @notes Users in the target room will receive [onUserJoined]({{callback}}#EngineEvents.onUserJoined) and [onUserPublishStream]({{callback}}#EngineEvents.onUserPublishStream)/[onUserPublishScreen]({{callback}}#EngineEvents.onUserPublishScreen).
|
|
3815
|
+
* @group Audio & Video Transport
|
|
3816
|
+
* @order 44
|
|
3591
3817
|
*/
|
|
3592
3818
|
resumeForwardStreamToAllRooms: () => Promise<ForwardStreamStateInfo[]>;
|
|
3593
3819
|
}
|
|
@@ -4149,7 +4375,7 @@ export interface ScreenEncoderConfig {
|
|
|
4149
4375
|
export declare type TrackCaptureConfig = Omit<MediaTrackConstraints, "deviceId">;
|
|
4150
4376
|
|
|
4151
4377
|
/**
|
|
4152
|
-
* @brief The mirror type
|
|
4378
|
+
* @brief The local mirror type. You cannot use mirror effect during transmission and encoding due to the restrictions of web explorer.
|
|
4153
4379
|
*/
|
|
4154
4380
|
export declare enum MirrorType {
|
|
4155
4381
|
|
|
@@ -4665,7 +4891,12 @@ export declare enum NetworkQuality {
|
|
|
4665
4891
|
/**
|
|
4666
4892
|
* @brief Network quality is very bad, users can barely communicate. It is recommended to notify users of poor network connection through UI.
|
|
4667
4893
|
*/
|
|
4668
|
-
VBAD = 5
|
|
4894
|
+
VBAD = 5,
|
|
4895
|
+
|
|
4896
|
+
/**
|
|
4897
|
+
* @brief The call was terminated due to a network disconnection.
|
|
4898
|
+
*/
|
|
4899
|
+
DOWN = 6
|
|
4669
4900
|
}
|
|
4670
4901
|
|
|
4671
4902
|
/**
|
|
@@ -4897,6 +5128,7 @@ export declare enum TRANSCODING_VIDEO_CODEC {
|
|
|
4897
5128
|
}
|
|
4898
5129
|
|
|
4899
5130
|
/**
|
|
5131
|
+
* @hidden
|
|
4900
5132
|
* @brief Subtitle configrations.
|
|
4901
5133
|
*/
|
|
4902
5134
|
export interface RTCSubtitleConfig {
|
|
@@ -4913,6 +5145,7 @@ export interface RTCSubtitleConfig {
|
|
|
4913
5145
|
}
|
|
4914
5146
|
|
|
4915
5147
|
/**
|
|
5148
|
+
* @hidden
|
|
4916
5149
|
* @brief Subtitle mode.
|
|
4917
5150
|
*/
|
|
4918
5151
|
export declare enum SUBTITLE_MODE {
|
|
@@ -4929,6 +5162,7 @@ export declare enum SUBTITLE_MODE {
|
|
|
4929
5162
|
}
|
|
4930
5163
|
|
|
4931
5164
|
/**
|
|
5165
|
+
* @hidden
|
|
4932
5166
|
* @brief The states of the subtitling task.
|
|
4933
5167
|
*/
|
|
4934
5168
|
export interface SubtitleEvent {
|
|
@@ -4950,6 +5184,7 @@ export interface SubtitleEvent {
|
|
|
4950
5184
|
}
|
|
4951
5185
|
|
|
4952
5186
|
/**
|
|
5187
|
+
* @hidden
|
|
4953
5188
|
* @brief Types of the states of the subtitling task.
|
|
4954
5189
|
*/
|
|
4955
5190
|
export declare enum SubtitleEventType {
|
|
@@ -4971,6 +5206,7 @@ export declare enum SubtitleEventType {
|
|
|
4971
5206
|
}
|
|
4972
5207
|
|
|
4973
5208
|
/**
|
|
5209
|
+
* @hidden
|
|
4974
5210
|
* @brief Related information about subtitles.
|
|
4975
5211
|
*/
|
|
4976
5212
|
export interface SubtitleMessage {
|
|
@@ -4994,11 +5230,20 @@ export interface SubtitleMessage {
|
|
|
4994
5230
|
* @brief Incremental sequence numbers assigned to transcribed or translated texts of the speaker's speech. Complete and incomplete sentences are numbered individually.
|
|
4995
5231
|
*/
|
|
4996
5232
|
sequence: number;
|
|
5233
|
+
|
|
5234
|
+
/**
|
|
5235
|
+
* @brief Subtitle language code.
|
|
5236
|
+
*/
|
|
4997
5237
|
language: string;
|
|
5238
|
+
|
|
5239
|
+
/**
|
|
5240
|
+
* @brief Subtitle mode.
|
|
5241
|
+
*/
|
|
4998
5242
|
mode: SUBTITLE_MODE;
|
|
4999
5243
|
}
|
|
5244
|
+
|
|
5000
5245
|
/**
|
|
5001
|
-
* @brief Cloud proxy
|
|
5246
|
+
* @brief Cloud proxy information.
|
|
5002
5247
|
*/
|
|
5003
5248
|
export interface CloudProxyInfo {
|
|
5004
5249
|
|
|
@@ -5210,7 +5455,8 @@ export interface IVERTC {
|
|
|
5210
5455
|
* @return Return an `IRTCEngine` instance if you call this API successfully.
|
|
5211
5456
|
* @notes + Call [destroyEngine](#destroyengine) respectively to destroy each IRTCEngine instance.
|
|
5212
5457
|
* + As each IRTCEngine instance is resource consuming, we recommend creating no more than 2 engine instances on each device at the same time.
|
|
5213
|
-
* @
|
|
5458
|
+
* @group Engine Management
|
|
5459
|
+
* @order 0
|
|
5214
5460
|
*/
|
|
5215
5461
|
createEngine: (appId: string, config?: EngineConfig) => IRTCEngine;
|
|
5216
5462
|
|
|
@@ -5219,14 +5465,16 @@ export interface IVERTC {
|
|
|
5219
5465
|
* @param engine By calling this API, this `IRTCEngine` instance and resource related will be wiped from memory. And any interaction with the media server will end.
|
|
5220
5466
|
* @notes + Before calling this API, ensure all business scenarios related to this `IRTCEngine` instance have ended.
|
|
5221
5467
|
* + Calling this API will block the main thread until it completes the exiting process. Therefore, do not include this API in a callback. Nor wait in a callback for the execution of this API in the main thread, thus causing a deadlock.
|
|
5222
|
-
* @
|
|
5468
|
+
* @group Engine Management
|
|
5469
|
+
* @order 1
|
|
5223
5470
|
*/
|
|
5224
5471
|
destroyEngine: (engine: IRTCEngine) => void;
|
|
5225
5472
|
|
|
5226
5473
|
/**
|
|
5227
5474
|
* @brief Get the current version of the SDK.
|
|
5228
5475
|
* @return The current SDK version.
|
|
5229
|
-
* @
|
|
5476
|
+
* @group Engine Management
|
|
5477
|
+
* @order 10
|
|
5230
5478
|
*/
|
|
5231
5479
|
getSdkVersion: () => string;
|
|
5232
5480
|
|
|
@@ -5235,6 +5483,8 @@ export interface IVERTC {
|
|
|
5235
5483
|
* Call this API to get deviceId used to specify the device when calling [setAudioPlaybackDevice](104478#setaudioplaybackdevice), [startVideoCapture](104478#startvideocapture), and [startAudioCapture](104478#startaudiocapture).
|
|
5236
5484
|
* @return A list of all media devices.
|
|
5237
5485
|
* @notes Only when the browser has permission to the media devices can it enumerate the full device list. Make sure the media device access is turned on before calling this API.
|
|
5486
|
+
* @group Device Management
|
|
5487
|
+
* @order 0
|
|
5238
5488
|
*/
|
|
5239
5489
|
enumerateDevices: () => Promise<MediaDeviceInfo[]>;
|
|
5240
5490
|
|
|
@@ -5243,7 +5493,8 @@ export interface IVERTC {
|
|
|
5243
5493
|
* @param options The device type you need
|
|
5244
5494
|
* @return + `video: boolean` Video devices
|
|
5245
5495
|
* + `audio:boolean` Audio devices
|
|
5246
|
-
* @
|
|
5496
|
+
* @group Device Management
|
|
5497
|
+
* @order 5
|
|
5247
5498
|
*/
|
|
5248
5499
|
enableDevices: (options?: {
|
|
5249
5500
|
|
|
@@ -5266,6 +5517,8 @@ export interface IVERTC {
|
|
|
5266
5517
|
* Call this API to get Device IDs used to specify the device when calling [startAudioCapture](104478#startaudiocapture) and [setAudioCaptureDevice](104478#setaudiocapturedevice).
|
|
5267
5518
|
* @return A list including all microphone devices.
|
|
5268
5519
|
* @notes Only when the browser has permission to the media devices can it enumerate the full device list. Make sure the media device access is turned on before calling this API.
|
|
5520
|
+
* @group Device Management
|
|
5521
|
+
* @order 10
|
|
5269
5522
|
*/
|
|
5270
5523
|
enumerateAudioCaptureDevices: () => Promise<MediaDeviceInfo[]>;
|
|
5271
5524
|
|
|
@@ -5274,6 +5527,8 @@ export interface IVERTC {
|
|
|
5274
5527
|
* Call this API to get Device IDs used to specify the device when calling [startVideoCapture](104478#startvideocapture) and [setVideoCaptureDevice](104478#setvideocapturedevice).
|
|
5275
5528
|
* @return A list including all camera devices.
|
|
5276
5529
|
* @notes Only when the browser has permission to the media devices can it enumerate the full device list. Make sure the media device access is turned on before calling this API.
|
|
5530
|
+
* @group Device Management
|
|
5531
|
+
* @order 11
|
|
5277
5532
|
*/
|
|
5278
5533
|
enumerateVideoCaptureDevices: () => Promise<MediaDeviceInfo[]>;
|
|
5279
5534
|
|
|
@@ -5282,6 +5537,8 @@ export interface IVERTC {
|
|
|
5282
5537
|
* Call this API to get Device IDs used to specify the device when calling [setAudioPlaybackDevice](104478#setaudioplaybackdevice).
|
|
5283
5538
|
* @return A list including all audio playback devices.
|
|
5284
5539
|
* @notes Only when the browser has permission to the media devices can it enumerate the full device list. Make sure the media device access is turned on before calling this API.
|
|
5540
|
+
* @group Device Management
|
|
5541
|
+
* @order 12
|
|
5285
5542
|
*/
|
|
5286
5543
|
enumerateAudioPlaybackDevices: () => Promise<MediaDeviceInfo[]>;
|
|
5287
5544
|
|
|
@@ -5289,7 +5546,8 @@ export interface IVERTC {
|
|
|
5289
5546
|
* @brief Call this API to check whether the browser is supported.
|
|
5290
5547
|
* @return + `True`: Supported
|
|
5291
5548
|
* + `False`: Not Supported
|
|
5292
|
-
* @
|
|
5549
|
+
* @group Engine Management
|
|
5550
|
+
* @order 15
|
|
5293
5551
|
*/
|
|
5294
5552
|
isSupported: () => Promise<boolean>;
|
|
5295
5553
|
|
|
@@ -5297,15 +5555,18 @@ export interface IVERTC {
|
|
|
5297
5555
|
* @brief Gets the codec type supported by current browser.
|
|
5298
5556
|
* If you have enabled vp8 codec, you can call the API to check whether the current browser supports vp8 encoding type before entering the room.
|
|
5299
5557
|
* @return Codec types supported by the current browser
|
|
5300
|
-
* @
|
|
5558
|
+
* @group Engine Management
|
|
5559
|
+
* @order 20
|
|
5301
5560
|
*/
|
|
5302
5561
|
getSupportedCodecs: () => Promise<string[]>;
|
|
5303
5562
|
|
|
5304
5563
|
/**
|
|
5305
5564
|
* @brief Configures the logging level of local cache, and the maximum cache space that can be used.
|
|
5306
5565
|
* @notes This API must be called before [createEngine](#createengine). If called after [createEngine](#createengine), it will take effect after the next [createEngine](#createengine) after [destroyEngine](#destroyengine).
|
|
5566
|
+
* @group Engine Management
|
|
5567
|
+
* @order 25
|
|
5307
5568
|
*/
|
|
5308
|
-
setLogConfig: ({ logLevel, LogfileSize }: {
|
|
5569
|
+
setLogConfig: ({ logLevel, LogfileSize, }: {
|
|
5309
5570
|
|
|
5310
5571
|
/**
|
|
5311
5572
|
* @brief The logging level of local cache.
|
|
@@ -5326,6 +5587,8 @@ export interface IVERTC {
|
|
|
5326
5587
|
/**
|
|
5327
5588
|
* @brief Download local cache generated file.
|
|
5328
5589
|
* @param key The key of the local cache. If empty, download the logs from the current cache.
|
|
5590
|
+
* @group Engine Management
|
|
5591
|
+
* @order 26
|
|
5329
5592
|
*/
|
|
5330
5593
|
downloadLog: (key?: string) => void;
|
|
5331
5594
|
}
|
|
@@ -5353,7 +5616,7 @@ declare class VERTC implements IVERTC {
|
|
|
5353
5616
|
platform: string;
|
|
5354
5617
|
commitInfo: string;
|
|
5355
5618
|
downloadLog: (key?: string | undefined) => void;
|
|
5356
|
-
setLogConfig: ({ logLevel, LogfileSize }: {
|
|
5619
|
+
setLogConfig: ({ logLevel, LogfileSize, }: {
|
|
5357
5620
|
logLevel?: "none" | "error" | "info" | "warning" | "trace" | undefined;
|
|
5358
5621
|
LogfileSize?: number | undefined;
|
|
5359
5622
|
}) => void;
|