tencent cloud

Feedback

Player Adapter for iOS

Last updated: 2022-10-17 11:16:01
    Player Adapter for iOS is a player plugin provided by VOD for customers who want to use a third-party or proprietary player to connect to Tencent Cloud PaaS resources. It is generally used by customers who strongly need to customize player features.

    SDK Download

    The Player Adapter SDK and demo for iOS can be downloaded here.

    Integration Guide

    Environment requirements

    To configure the support for HTTP requests, you need to set App Transport Security Settings->Allow Arbitrary Loads to YES in the info.plist file of your project.

    Component dependency

    Add the GCDWebServer component dependency.
    pod "GCDWebServer", "~> 3.0"
    GCDWebServer is a lightweight HTTP server based on GCD and can be used for OS X and iOS. This library also implements extended features such as web-based file upload and WebDAV server.

    Using the Player

    Declare the variables and then create an instance. The main class of the player is TXCPlayerAdapter, and videos can be played back after it is created.
    A fileId is usually returned by the server after the video is uploaded:
    1. After the video is published on the client, the server will return a fileId to the client.
    2. When the video is uploaded to the server, the corresponding fileId will be included in the notification of upload confirmation.
    If the file already exists in Tencent Cloud, you can go to Media Assets and find it. After clicking it, you can view relevant parameters in the video details on the right.
    NSInteger appId; //// `appid` can be applied for in Tencent Cloud VOD
    NSString *fileId;
    // `psign` is a player signature. For more information on the signature and how to generate it, visit https://www.tencentcloud.com/document/product/266/42436?from_cn_redirect=1.
    NSString *pSign = self.pSignTextView.text;
    
    TXCPlayerAdapter *adapter = [TXCPlayerAdapter shareAdapterWithAppId:appId];
    Request the video information and play back the video:
    id<ITXCPlayerAssistorProtocol> assistor = [TXCPlayerAdapter createPlayerAssistorWithFileId:fileId pSign:pSign];
    [assistor requestVideoInfo:^(id<ITXCPlayerAssistorProtocol> response, NSError *error) {
    if (error){
    NSLog(@"create player assistor error : %@",error);
    [self.view makeToast:error.description duration:5.0 position:CSToastPositionBottom];
    return;
    }
    [weakSelf avplayerPlay:response]; // Play back the video
    }];
    
    
    
    - (void)avplayerPlay:(id<ITXCPlayerAssistorProtocol>)response
    {
    AVPlayerViewController *playerVC = [[AVPlayerViewController alloc] init];
    self.playerVC = playerVC;
    TXCStreamingInfo *info = response.getStreamingInfo;
    AVPlayer *player = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:info.playUrl]];
    playerVC.player = player;
    playerVC.title = response.getVideoBasicInfo.name;
    [self.navigationController pushViewController:playerVC animated:YES];
    
    [player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
    }
    Terminate the player after use:
    [TXCPlayerAdapter destroy];

    SDK API Description

    Initializing Adapter

    This API is used to initialize an Adapter singleton.
    API
    + (instancetype)shareAdapterWithAppId:(NSUInteger)appId;
    Parameter description
    appId: Enter the appid (if a subapplication is used, enter the subappid). |

    Terminating Adapter

    This API is used to terminate Adapter. It can be called after the program exits.
    API
    + (void)destroy;

    Creating the Player auxiliary class

    An auxiliary class of the player can be used to get the playback fileId and process DRM encryption APIs.
    API
    + (id<ITXCPlayerAssistorProtocol>)createPlayerAssistorWithFileId:(NSString *)fileId
    pSign:(NSString *)pSign;
    Parameter description
    Parameter
    Type
    Description
    fileId
    String
    The fileId of the video to be played.
    pSign
    String
    The player signature.

    Requesting video playback information

    This API is used to request the stream information of the video to be played back from the Tencent Cloud VOD server.
    API
    - (void)requestVideoInfo:(ITXCRequestVideoInfoCallback)completion;
    Parameter description
    Parameter
    Type
    Description
    completion
    ITXCRequestVideoInfoCallback
    Async callback function.

    Terminating the Player auxiliary class

    This API is used to terminate an auxiliary class. You can call it when exiting the player or switching to the next video for playback.
    API
    + (void)destroyPlayerAssistor:(id<ITXCPlayerAssistorProtocol>)assistor;

    Getting the basic video information

    This API is used to get the video information and will take effect only after id<ITXCPlayerAssistorProtocol>.requestVideoInfo is called back.
    API
    - (TXCVideoBasicInfo *)getVideoBasicInfo;
    Parameter description
    The parameters of TXCVideoBasicInfo are as follows:
    Parameter
    Type
    Description
    name
    String
    Video name
    size
    Int
    Video size in bytes
    duration
    Float
    Video duration in seconds
    description
    String
    Video description
    coverUrl
    String
    Video cover

    Getting video stream information

    This API is used to get the video stream information list and will take effect only after id<ITXCPlayerAssistorProtocol>.requestVideoInfo is called back.
    API
    - (TXCStreamingInfo *)getStreamingInfo;
    Parameter description
    The parameters of TXCStreamingInfo are as follows:
    Parameter
    Type
    Description
    playUrl
    String
    Playback URL
    subStreams
    List
    The adaptive bitrate substream information of the SubStreamInfo type.
    The parameters of TXCSubStreamInfo are as follows:
    Parameter
    Type
    Description
    type
    String
    Substream type. Valid values: video
    width
    Int
    The substream video width in px.
    height
    Int
    The substream video height in px.
    resolutionName
    String
    The name of the substream video displayed in the player.

    Getting keyframe timestamp information

    This API is used to get the video keyframe timestamp information and will take effect only after id<ITXCPlayerAssistorProtocol>.requestVideoInfo is called back.
    API
    - (NSArray<TXCKeyFrameDescInfo *> *)getKeyFrameDescInfos;
    Parameter description
    The parameters of TXCKeyFrameDescInfo are as follows:
    Parameter
    Type
    Description
    timeOffset
    Float
    1.1
    content
    String
    "Beginning now..."

    Getting thumbnail information

    This API is used to get the thumbnail information and will take effect only after id<ITXCPlayerAssistorProtocol>.requestVideoInfo is called back.
    API
    - (TXCImageSpriteInfo *)getImageSpriteInfo;
    Parameter description
    The parameters of TCXImageSpriteInfo are as follows:
    Parameter
    Type
    Description
    imageUrls
    List
    Array of thumbnail download URLs of String type.
    webVttUrl
    String
    Thumbnail VTT file download URL.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support