400-881-9892

文档中心

官方文档,可查阅产品介绍、快速入门、用户指南、开发指南、API参考、SDK参考、帮助等信息。

文档中心 互动课堂

Primary proxy callback

    Notification
    • CUSTOMIZE NOTIFICATIONS

    This notification is a special customized one and does not require listening. Its purpose is to obtain link-related statistical information during the process of entering the classroom and connecting to the server. The relevant information, including errors and link-related statistics, can be obtained in the userInfo of the NSNotification.

    1.TKRoomManagerJoinRoomSuccessNotification  When the SDK's joinRoomWithHost or joinRoomEx interface is called to join a room, this notification will be received if the operation is successful.

    2.TKRoomManagerJoinRoomFailedNotification When the SDK's joinRoomWithHost or joinRoomEx interface is called to join a room, this notification will be received if the operation fails.

    3.TKRoomManagerContinueCheckRoomNotification When the SDK's joinRoomWithHost or joinRoomEx interface is called to join a room, if device detection is required during the process (device detection is a room configuration feature that needs to be set when creating the room in the backend), the SDK will listen for this notification. Once the SDK receives this notification (indicating that the device detection is complete), it will continue with the room joining process.

    ⚠️ Note: When enabling the device detection configuration feature, you need to pass the TKRoomSettingOptionalInteruptCheckRoom field as true in the initWithAppKey interface. Additionally, you must send the TKRoomManagerContinueCheckRoomNotification notification after completing the device detection; otherwise, the room joining process will be halted.

    TKRoomManagerDelegate agreement

    The TKRoomManagerDelegate protocol is the main signaling callback for rooms in the TKRoomSDK.

    roomManagerRoomJoined
    • Brief description

    -The callback for successfully entering the room. When calling the joinRoomWithHost or joinRoomEx interface to enter a room, this callback will be triggered upon success. If the operation fails, this callback will not be triggered.

    • Callback name

    - (void)roomManagerRoomJoined

    roomManagerRoomLeft
    • Brief description

    -The callback for leaving the room. This callback will be triggered when calling the leaveRoom interface to exit the room.

    • Callback name

    - (void)roomManagerRoomLeft

    roomManagerOnConnectionLost
    • Brief description

    Offline callback

    • Callback name

    - (void)roomManagerOnConnectionLost

    roomManagerDidOccuredError
    • Brief description

    The callback for all errors that occur in the SDK

    • Callback name

    - (void)roomManagerDidOccuredError:(NSError *)error

    • Parameter
    Parameter Name Type Description
    error NSError Error information, where the detailed error codes can be found in the enumeration values of TKRoomErrorCode in the TKRoomDefines.h file
    roomManagerDidOccuredWaring
    • Brief description

    The callback for warnings that occur in the SDK

    • Callback name

    - (void)roomManagerDidOccuredWaring:(TKRoomWarningCode)code

    • Parameter
    Parameter Name Type Description
    code TKRoomWarningCode Warning code, for details please refer to the enumeration values of TKRoomWarningCode in the TKRoomDefines.h file
    roomManagerUserJoined
    • Brief description

    The callback when a user enters the room

    • Callback name

    - (void)roomManagerUserJoined:(NSString *)peerID inList:(BOOL)inList

    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    inList BOOL YES: Indicates that the user entered the room before me. NO: Indicates that the user entered the room after me
    roomManagerUserLeft
    • Brief description

    The callback when a user leaves the room

    • Callback name

    - (void)roomManagerUserLeft:(NSString *)peerID

    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    roomManagerKickedOut
    • Brief description

    The callback when I am kicked out of the room

    • Callback name

    - (void)roomManagerKickedOut:(NSDictionary *)reason

    • Parameter
    Parameter Name Type Description
    reason NSDictionary Reason for being kicked
    roomManagerUserPropertyChanged
    • Brief description

    The callback when a user's attributes change

    • Callback name
    1
    2
    3
     - (void)roomManagerUserPropertyChanged:(NSString *)peerID
                                                    properties:(NSDictionary*)properties
                                                          fromId:(NSString *)fromId
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    properties NSDictionary The changed user attributes
    fromId NSString The user ID of the user who modified the attributes
    roomManagerOnUserVideoStatus
    • Brief description

    -Single-stream mode: Callback when a user's video status changes. Multi-stream mode: Callback when the video status of a specific video device of a user changes. Default mode: Single-stream mode. Mobile devices do not support enabling multi-stream mode, meaning they cannot publish multiple video streams, but they can receive multiple video streams

    • Callback name
    1
    2
    3
    4
    5
    - (void)roomManagerOnUserVideoStatus:(NSString *)peerID
                                                       state:(TKMediaState)state
    - (void)roomManagerOnUserVideoStatus:(NSString *)peerID
                                                  deviceId:(NSString *)deviceId
                                                    state:(TKMediaState)state;
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    deviceId NSString Camera device ID. This parameter is valid if the user has multiple cameras and has enabled multi-stream mode
    state TKMediaState Video status, for details refer to the enumeration values in the TKRoomDefines.h file
    roomManagerOnUserAudioStatus
    • Brief description

    The callback when a user's audio status changes

    • Callback name
    1
    2
    - (void)roomManagerOnUserAudioStatus:(NSString *)peerID
                                                     state:(TKMediaState)state
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    state TKMediaState Audio status, for details refer to the enumeration values in the TKRoomDefines.h file
    roomManagerOnRemotePubMsgWithMsgID
    • Brief description

    -When a user sends a publish signaling message (pubMsg), if I am the recipient of this signaling message, I will receive the callback for the custom signaling published by the user

    • Callback name
    1
    2
    3
    4
    5
    6
    - (void)roomManagerOnRemotePubMsgWithMsgID:(NSString *)msgID
                                                           msgName:(NSString *)msgName
                                                                    data:(NSObject *)data
                                                                   fromID:(NSString *)fromID
                                                                     inList:(BOOL)inlist
                                                                           ts:(long)ts
    
    • Parameter
    Parameter Name Type Description
    msgID NSString Signaling ID
    msgName NSString Signaling name
    data NSObject Signaling content
    fromID NSString The sender ID of the signaling
    inlist BOOL YES: Indicates that the signaling was published before I entered the room. NO: Indicates that the signaling was published after I entered the room
    ts long Timestamp
    roomManagerOnRemoteDelMsgWithMsgID
    • Brief description

    -When a user sends a delete signaling message (delMsg), if I am the recipient of this signaling message, I will receive the callback for the custom signaling sent by the user

    • Callback name
    1
    2
    3
    4
    5
    6
    - (void)roomManagerOnRemoteDelMsgWithMsgID:(NSString *)msgID
                                                          msgName:(NSString *)msgName
                                                                   data:(NSObject *)data
                                                                  fromID:(NSString *)fromID 
                                                                    inList:(BOOL)inlist
                                                                          ts:(long)ts
    
    • Parameter
    Parameter Name Type Description
    msgID NSString Signaling ID
    msgName NSString Signaling name
    data NSObject Signaling content
    fromID NSString The sender ID of the signaling
    inlist BOOL YES: Indicates that the signaling was published before I entered the room. NO: Indicates that the signaling was published after I entered the room
    ts long Timestamp
    roomManagerMessageReceived
    • Brief description

    -The callback for receiving a chat message sent by a user. You can send a chat message by calling the sendMessage interface

    • Callback name
    1
    2
    3
    - (void)roomManagerMessageReceived:(NSString *)message
                                                  fromID:(NSString *)peerID
                                             extension:(NSDictionary *)extension
    
    • Parameter
    Parameter Name Type Description
    message NSString Chat message content
    peerID NSString Sender ID
    extension NSDictionary Extended information
    roomManagerOnServerRecordStateChanged
    • Brief description

    -The callback for the recording status during playback. You can call the startServerRecord interface to start server-side recording

    • Callback name
    1
    2
    3
    - (void)roomManagerOnServerRecordStateChanged:(TKRecordState)state
                                                                  fromID:(NSString *)peerID
                                                                 extension:(NSDictionary *)extension
    
    • Parameter
    Parameter Name Type Description
    state NSString Status value, for details refer to the enumeration values in the TKRoomDefines.h file
    peerID NSString Sender ID
    extension NSDictionary If the parameter state == TKRecordState_Started (indicating the recording has started), the extension dictionary will return the regular recording piece ID and the MP4 recording piece ID for this recording session. The extension dictionary may be nil
    roomManagerOnVideoStatsReport
    • Brief description

    Callback for video data statistics, occurring once per second

    • Callback name

    - (void)roomManagerOnVideoStatsReport:(NSString *)peerId stats:(TKVideoStats *)stats

    • Parameter
    Parameter Name Type Description
    peerId NSString User ID, indicating that the video data belongs to this user
    stats TKVideoStats Video data object, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnAudioStatsReport
    • Brief description

    Callback for audio data statistics, occurring once per second

    • Callback name

    - (void)roomManagerOnAudioStatsReport:(NSString *)peerId stats:(TKAudioStats *)stats

    • Parameter
    Parameter Name Type Description
    peerId NSString User ID, indicating that the audio data belongs to this user
    stats TKAudioStats Audio data object, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnRtcStatsReport
    • Brief description

    Callback for uplink and downlink audio and video data statistics, occurring once per second

    • Callback name

    - (void)roomManagerOnRtcStatsReport:(TKRtcStats *)stats

    • Parameter
    Parameter Name Type Description
    stats TKRtcStats Audio and video data object, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnAudioVolumeWithPeerID
    • Brief description

    The callback for changes in a user's audio volume level

    • Callback name

    - (void)roomManagerOnAudioVolumeWithPeerID:(NSString *)peeID volume:(int)volume

    • Parameter
    Parameter Name Type Description
    peeID NSString User ID
    volume int Volume level
    roomManagerOnAudioRoomSwitch
    • Brief description

    The callback for changes in room mode, such as switching between audio-only and audio-video rooms

    • Callback name

    - (void)roomManagerOnAudioRoomSwitch:(NSString *)fromId onlyAudio:(BOOL)onlyAudio

    • Parameter
    Parameter Name Type Description
    fromId NSString The user ID of the person who switched the room mode, i.e., the signaling sender ID
    onlyAudio BOOL YES: Indicates an audio-only room. NO: Indicates an audio-video room.
    roomManagerOnFirstVideoFrameWithPeerID
    • Brief description

    -When playing a user's video, this callback will be received when the first frame of the video is rendered. If the video of a user has not been unplayed and is played again, this callback will not be received again

    Single-stream mode: Callback when the first frame of a user's video is rendered while playing the user's video. Multi-stream mode: Callback when the first frame of a specific device's video is rendered while playing a user's video from that device. Default mode: Single-stream mode. Mobile devices do not support enabling multi-stream mode, meaning they cannot publish multiple video streams, but they can receive multiple video streams

    • Callback name
    1
    2
    3
    4
    5
    6
    7
    8
    9
    - (void)roomManagerOnFirstVideoFrameWithPeerID:(NSString *)peerID
                                                                      width:(NSInteger)width
                                                                      height:(NSInteger)height
                                                              mediaType:(TKMediaType)type
    - (void)roomManagerOnFirstVideoFrameWithPeerID:(NSString *)peerID
                                                                 deviceId:(NSString *)deviceId
                                                                      width:(NSInteger)width
                                                                      height:(NSInteger)height
                                                              mediaType:(TKMediaType)type
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    deviceId NSString Camera device ID. This parameter is valid if the user has multiple cameras and has enabled multi-stream mode
    width NSInteger Video width
    height NSInteger Video height
    type TKMediaType Type, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnVideoStateChange
    • Brief description

    The callback for changes in video status while playing a user's video

    • Callback name
    1
    2
    3
    4
    - (void)roomManagerOnVideoStateChange:(NSString *)peerId
                                                    deviceId:(NSString *)deviceId
                                               videoState:(TKRenderState)state
                                                  mediaType:(TKMediaType)type
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    deviceId NSString Camera device ID. It is nil in single-stream mode and valid in multi-stream mode
    state TKRenderState Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    type TKMediaType Type, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnFirstAudioFrameWithPeerID
    • Brief description

    The callback for changes in audio status while playing a user's audio

    • Callback name
    1
    2
    3
    - (void)roomManagerOnAudioStateChange:(NSString *)peerId
                                               audioState:(TKRenderState)state
                                                  mediaType:(TKMediaType)type
    
    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    state TKRenderState Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    type TKMediaType Type, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnAudioStateChange
    • Brief description

    The callback for receiving the first frame of audio data while playing a user's audio and video. If the audio of a user has not been unplayed and is played again, this callback will not be received again.o

    • Callback name

    - (void)roomManagerOnFirstAudioFrameWithPeerID:(NSString *)peerID mediaType:(TKMediaType)type;

    • Parameter
    Parameter Name Type Description
    peerID NSString User ID
    type TKMediaType Type, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnShareMediaState
    • Brief description

    The callback for changes in the status of a media stream when a user shares it. You can call the playMediaFile interface to play the media stream

    • Callback name
    1
    2
    3
    - (void)roomManagerOnShareMediaState:(NSString *)peerId
                                                        state:(TKMediaState)state
                                     extensionMessage:(NSDictionary *)message;
    
    • Parameter
    Parameter Name Type Description
    peerId NSString User ID
    state TKMediaState Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    message NSDictionary Extended information
    roomManagerUpdateMediaStream
    • Brief description

    -The callback for updates to the media stream information when a user shares it. ⚠️ Note: Currently, only the person who initiated the media stream will receive this callback

    • Callback name
    1
    2
    3
    - (void)roomManagerUpdateMediaStream:(NSTimeInterval)duration
                                                            pos:(NSTimeInterval)pos
                                                        isPlay:(BOOL)isPlay;
    
    • Parameter
    Parameter Name Type Description
    duration NSTimeInterval Total duration
    pos NSTimeInterval Current progress
    isPlay BOOL Whether it is in the playing state
    roomManagerMediaLoaded
    • Brief description

    -The callback when the first frame of the media stream is loaded while a user is sharing it.

    This callback is triggered when the first frame is loaded after calling the playMediaFile interface to play the media stream

    • Callback name

    - (void)roomManagerMediaLoaded;

    • Parameter

    None

    roomManagerOnShareScreenState
    • Brief description

    -The callback for changes in the status when a user shares their screen.

    You can call the playScreen interface to play the screen-sharing stream

    • Callback name
    1
    2
    - (void)roomManagerOnShareScreenState:(NSString *)peerId
                                    state:(TKMediaState)state;
    
    • Parameter
    Parameter Name Type Description
    peerId NSString User ID
    state TKMediaState Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    roomManagerOnShareFileState
    • Brief description

    -The callback for changes in the status when a user shares a movie file.

    You can call the playFile interface to play the stream of the shared movie file

    • Callback name
    1
    2
    - (void)roomManagerOnShareScreenState:(NSString *)peerId
                                    state:(TKMediaState)state;
    
    • Parameter
    Parameter Name Type Description
    peerId NSString User ID
    state TKMediaState Status, for details refer to the relevant definitions in the TKRoomDefines.h file

    KMediaFrameDelegate Agreement

    The TKMediaFrameDelegate protocol is the delegate callback for local media capture data and remote media data.

    ⚠️ Note: These callback functions are not thread-safe.

    onCaptureVideoFrame
    • Brief description

    The callback for locally captured video data

    • Callback name

    - (void)onCaptureVideoFrame:(TKVideoFrame *)frame sourceType:(TKMediaType)type;

    • Parameter
    Parameter Name Type Description
    frame TKVideoFrame Video data, for details refer to the relevant definitions in the TKRoomDefines.h file
    type TKMediaType Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    onCaptureAudioFrame
    • Brief description

    The callback for locally captured audio data

    • Callback name

    - (void)onCaptureAudioFrame:(TKAudioFrame *)frame sourceType:(TKMediaType)type;

    • Parameter
    Parameter Name Type Description
    frame TKAudioFrame Audio data, for details refer to the relevant definitions in the TKRoomDefines.h file
    type TKMediaType Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    onRenderAudioFrame
    • Brief description

    The callback for receiving remote audio data

    • Callback name

    - (void)onRenderAudioFrame:(TKAudioFrame *)frame uid:(NSString *)peerId sourceType:(TKMediaType)type;

    • Parameter
    Parameter Name Type Description
    frame TKAudioFrame Audio data, for details refer to the relevant definitions in the TKRoomDefines.h file
    peerId NSString User ID
    type TKMediaType Status, for details refer to the relevant definitions in the TKRoomDefines.h file
    onRenderVideoFrame
    • Brief description

    The callback for receiving video data from a remote user or receiving video data from a specific video device of a remote user

    • Callback name
    1
    2
    3
    - (void)onRenderVideoFrame:(TKVideoFrame *)frame 
                                          uid:(NSString *)peerId 
                              sourceType:(TKMediaType)type;
    

    or

    1
    2
    3
    4
    - (void)onRenderVideoFrame:(TKVideoFrame *)frame 
                                          uid:(NSString *)peerId 
                                  deviceId:(NSString *)deviceId 
                              sourceType:(TKMediaType)type;
    
    • Parameter
    Parameter Name Type Description
    frame TKVideoFrame Audio data, for details refer to the relevant definitions in the TKRoomDefines.h file
    peerId NSString User ID
    deviceId NSString Device ID
    type TKMediaType Status, for details refer to the relevant definitions in the TKRoomDefines.h file