400-881-9892

文档中心

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

文档中心 互动课堂

Publish and play audio and video

    publishVideo
    • Brief description

    Upload local video

    The function will take effect after the user successfully enters the room. When the user successfully publishes the video, the following callback function will be received: - (void)roomManagerOnUserVideoStatus:(NSString *)peerID state:(TKMediaState)state.

    • API Name

    - (int)publishVideo:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    completion No completion_block Callback of the API call
    • Method Example
    1
    2
    3
    4
    5
        int ret = [_roomMgr publishVideo:^(NSError *error) {
                if (error) {
                    NSLog(@"publish local video error:%@", error);
                }
         }];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    unPublishVideo

    • Brief description

    Stop publishing local video

    The function will take effect after the user successfully enters the room. When the user successfully stops publishing the video, the following callback function will be received: - (void)roomManagerOnUserVideoStatus:(NSString *)peerID state:(TKMediaState)state.

    • API Name

    - (int)unPublishVideo:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    completion No completion_block Callback of the API call
    • Method Example
    1
    2
    3
    4
    5
         int ret = [_roomMgr unPublishVideo:^(NSError *error) {
                if (error) {
                    NSLog(@"unpublish local video error:%@", error);
                }
         }];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    publishAudio

    • Brief description

    Publish local audio

    The function will take effect after the user successfully enters the room. When the user successfully publishes the audio, the following callback function will be received: - (void)roomManagerOnUserAudioStatus:(NSString *)peerID state:(TKMediaState)state.

    • API Name

    - (int)publishAudio:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    completion No completion_block Callback of the API call
    • Method Example
    1
    2
    3
    4
    5
        int ret = [_roomMgr publishAudio:^(NSError *error) {
                if (error) {
                    NSLog(@"publish local audio error:%@", error);
                }
         }];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    unPublishAudio

    • Brief description

    Stop publishing local audio

    The function will take effect after the user successfully enters the room. When the user successfully stops publishing the audio, the following callback function will be received: - (void)roomManagerOnUserAudioStatus:(NSString *)peerID state:(TKMediaState)state.

    • API Name

    - (int)unPublishAudio:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    completion No completion_block Callback of the API call
    • Method Example
    1
    2
    3
    4
    5
        int ret = [_roomMgr unPublishAudio:^(NSError *error) {
                if (error) {
                    NSLog(@"unpublish local audio error:%@", error);
                }
         }];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    playVideo

    • Brief description

    Play user video. This function will take effect after calling initWithAppKey. This function can be called multiple times for the same user ID.

    1.When the same peerID and the same view are passed in, the function will not perform any operation and will directly return success; 2.When the same peerID but a different view is passed in, the video will be rendered on the new view, and the previous view that was playing the video will stop rendering the video; 3.These functions must be called on the main thread.

    After calling this interface, there will be relevant callback notifications for playing the video: 1.  Callback for receiving the first frame of data: -(void)roomManagerOnFirstVideoFrameWithPeerID:(NSString )peerID width:(NSInteger)width height:(NSInteger)height mediaType:(TKMediaType)type 2.  Callback for video interruption during playback: -(void)roomManagerOnVideoStateChange:(NSString )peerId deviceId:(NSString *)deviceId videoState:(TKRenderState)state mediaType:(TKMediaType)type

    • API Name
    1
    2
    3
    4
    5
    6
    7
    8
        - (int)playVideo:(NSString *)peerID
            renderType:(TKRenderMode)renderType
                   window:(UIView *)window
             completion:(completion_block _Nullable)completion;
        - (int)playVideo:(NSString *)peerID
                     canvas:(TKVideoCanvas *)canvas
                     deviceId:(NSString *_Nullable)deviceId
               completion:(completion_block _Nullable)completion;
    
    • Parameter
    Parameter Name Required Type Description
    peerID Yes NSString User ID
    TKRenderMode Yes TKRenderMode The rendering mode enumeration is defined in detail in TKRoomDefines.h
    window Yes UIView Video window
    canvas Yes TKVideoCanvas The rendering window class is defined in detail in TKRoomDefines.h
    deviceId No NSString The capture device ID of this video, which is applicable for the case where the user is publishing from multiple camera devices simultaneously
    completion No completion_block The callback for completion of the call, which can handle operations after playback is finished
    • Method Example
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
           UIView *videoView = [[UIView alloc] initWithFrame:self.view.bounds];
        [self.view addSubview:videoView];
        [_roomMgr playVideo:@"ade123456 "
                      renderType:TKRenderMode_adaptive
                            window:videoView
                       completion:^(NSError *error) {
                if (error) {
                   NSLog(@"paly video error = %@", error);
                }
            }];OR:
            UIView *videoView = [[UIView alloc] initWithFrame:self.view.bounds];
            [self.view addSubview:videoView];
            TKVideoCanvas *canvas = [[TKVideoCanvas alloc] init];
            canvas.view = videoView;                                        //The view for rendering the video
            canvas.isMirror = NO;                                          //Whether the video is mirrored
            canvas.renderMode = TKRenderMode_adaptive;     // Rendering mode
            [_roomMgr playVideo:@"ade123456"
                                canvas:canvas
                              deviceId:nil
                           completion:^(NSError *error) {
                if (error) {
                   NSLog(@"paly video error = %@", error);
                }
            }];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    playAudio

    • Brief description

    Play user audio The playback of user audio will take effect only after calling initWithAppKey. There is no need to play your own audio. If the playAudio function is passed your own ID as a parameter, the function will directly return.

    After calling this interface, there will be callback notifications related to audio playback: 1.  Callback for receiving the first frame of data: -(void)roomManagerOnFirstAudioFrameWithPeerID:(NSString )peerID mediaType:(TKMediaType)type 2.  Callback for audio interruption during video playback: -(void)roomManagerOnAudioStateChange:(NSString )peerId audioState:(TKRenderState)state mediaType:(TKMediaType)type 3.  Callback for changes in audio volume when playing user audio (including both local and remote audio volumes): -(void)roomManagerOnAudioVolumeWithPeerID:(NSString *)peerID volume:(int)volume

    • API Name

    - (int)playAudio:(NSString *)peerID completion:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    peerID Yes NSString User ID
    completion No completion_block Completion callback
    • Method Example

    [_roomMgr playAudio:@"ade123456" completion:nil];

    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    unPlayVideo

    • Brief description

    Stop playing user's video

    The call will take effect only after invoking initWithAppKey. All calls must be made on the main thread.

    • API Name
    1
    2
    3
    4
    5
        - (int)unPlayVideo:(NSString *)peerID
                  completion:(completion_block _Nullable)completion;OR
        - (int)unPlayVideo:(NSString *)peerID
                       deviceId:(NSString *_Nullable)deviceId
                   completion:(completion_block _Nullable)completion;
    
    • Parameter
    Parameter Name Required Type Description
    peerID Yes NSString User ID
    deviceId No NSString The device ID of the camera capturing this video. This is applicable in cases where the user is publishing from multiple cameras simultaneously
    completion No completion_block Completion callback
    • Method Example
    1
    2
        [_roomMgr unPlayVideo:@"ade123456" completion:nil];OR:
        [_roomMgr unPlayVideo:@"ade123456" deviceId:nil completion:nil];
    
    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    unPlayAudio

    • Brief description

    Stop playing user's audio

    • API Name

    - (int)unPlayAudio:(NSString *)peerID completion:(completion_block _Nullable)completion;

    • Parameter
    Parameter Name Required Type Description
    peerID Yes NSString User ID
    completion No completion_block Completion callback
    • Method Example

    [_roomMgr unPlayAudio:@"ade123456" completion:nil];

    • Return Value Description
    Type Description
    int 0: Indicates that the call was successful. Non-zero: Indicates that the call failed

    Notes

    For more return error codes, please refer to the error code descriptions in TKRoomErrorCode