git clone git@github.com:tencentyun/SuperPlayer_iOS.git
Cloning to 'SuperPlayer_iOS'...remote: Enumerating objects: 2637, done.remote: Counting objects: 100% (644/644), done.remote: Compressing objects: 100% (333/333), done.remote: Total 2637 (delta 227), reused 524 (delta 170), pack-reused 1993Receiving the object: 100% (2637/2637), 571.20 MiB | 3.94 MiB/s, done.Processing delta: 100% (1019/1019), done.
Filename | Description |
SDK | Stores the Superplayer framework and static library. |
Demo | The folder of the Player demo. |
App | The entry point UI. |
SuperPlayerDemo | The Player demo. |
SuperPlayerKit | The Player component. |
SuperPlayer
as a Pod:pod 'SuperPlayer
podfile
:pod 'SuperPlayer/Player'
podfile
:pod 'SuperPlayer/Professional'
pod install
or pod update
.TXLiteAVSDK_Player.framework
into your project and select Do Not Embed.Demo/TXLiteAVDemo/SuperPlayerKit/SuperPlayer
to your project directory.SuperPlayer
include AFNetworking
, SDWebImage
, Masonry
, and TXLiteAVSDK_Player
.TXLiteAVSDK_Player
manually, you need to add the required system frameworks and libraries:TXFFmpeg.xcframework
and TXSoundTouch.scframework
under the TXLiteAVSDK_Player
file as dynamic libraries.TXLiteAVSDK_Player
as a Pod, no libraries need to be added.SuperPlayerView
object to play videos (SuperPlayerView
is the main class of the Superplayer).// Import the header file#import <SuperPlayer/SuperPlayer.h>// Create a player_playerView = [[SuperPlayerView alloc] init];// Set a delegate for events_playerView.delegate = self;// Set the parent view. _playerView will be automatically added under holderView._playerView.fatherView = self.holderView;
- [AppDelegate application:didFinishLaunchingWithOptions:]
:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {NSString * const licenceURL = @"<The license URL obtained>";NSString * const licenceKey = @"<The key obtained>";//TXLiveBase can be found in the "TXLiveBase.h" header file[TXLiveBase setLicenceURL:licenceURL key:licenceKey];NSLog(@"SDK Version = %@", [TXLiveBase getSDKVersionStr]);}
FileId
in VOD or URL. We recommend you integrate the FileId
because it allows you to use more VOD capabilities.FileId
will be included in the notification of upload confirmation.psign
to specify the video to play; otherwise, the playback may fail. For more information on how to transcode a video and generate psign
, see Play back a video with the Player component and Player Signature.FileId
, the above problem may exist. In this case, we recommend you make adjustments as instructed above. You can also directly get the playback link of the source video for playback through URL.// If you haven't enabled hotlink protection and a "no v4 play info" error occurs, we recommend you transcode your video using the Adaptive-HLS template (ID: 10) or get the playback URL of the video and play it by URL.SuperPlayerModel *model = [[SuperPlayerModel alloc] init];model.appId = 1400329071;// Configure AppIdmodel.videoId = [[SuperPlayerVideoId alloc] init];model.videoId.fileId = @"5285890799710173650"; // Configure `FileId`// If you enable hotlink protection, you need to enter a `psign` (player signature) for playback. For more information on the signature and how to generate it, see [Player Signature](https://www.tencentcloud.com/document/product/266/38099).//model.videoId.pSign = @"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTQwMDMyOTA3MSwiZmlsZUlkIjoiNTI4NTg5MDc5OTcxMDE3MzY1MCIsImN1cnJlbnRUaW1lU3RhbXAiOjEsImV4cGlyZVRpbWVTdGFtcCI6MjE0NzQ4MzY0NywidXJsQWNjZXNzSW5mbyI6eyJ0IjoiN2ZmZmZmZmYifSwiZHJtTGljZW5zZUluZm8iOnsiZXhwaXJlVGltZVN0YW1wIjoyMTQ3NDgzNjQ3fX0.yJxpnQ2Evp5KZQFfuBBK05BoPpQAzYAWo6liXws-LzU";[_playerView playWithModelNeedLicence:model];
SuperPlayerModel *model = [[SuperPlayerModel alloc] init];model.videoURL = @"http://your_video_url.mp4"; // Enter the URL of the video to play[_playerView playWithModelNeedLicence:model];
resetPlayer
to reset the player and free up memory.[_playerView resetPlayer];
- (void)superPlayerFullScreenChanged:(SuperPlayerView *)player {// You can customize the logic after switching to the full screen mode here}
// The back button tapping event- (void)superPlayerBackAction:(SuperPlayerView *)player;Triggered by tapping of the back button at the top left// The exit full screen notification- (void)superPlayerFullScreenChanged:(SuperPlayerView *)player;
// Use the API below to enable/disable screen locking@property(nonatomic, assign) BOOL isLockScreen;
SPDefaultControlView
object and, during initialization of the player view, set an event for the on-screen comment button of SPDefaultControlView
. The on-screen comment content and view are customized by yourself. For details, see CFDanmakuView
, CFDanmakuInfo
, and CFDanmaku
in SuperPlayerDemo
.SPDefaultControlView *dv = (SPDefaultControlView *)**self**.playerView.controlView;[dv.danmakuBtn addTarget:**self** action:**@selector**(danmakuShow:) forControlEvents:UIControlEventTouchUpInside];
// The following attributes are required--------// On-screen time@property(nonatomic, assign) CGFloat duration;// On-screen time in the center, at top, and at bottom@property(nonatomic, assign) CGFloat centerDuration;// On-screen comment line height@property(nonatomic, assign) CGFloat lineHeight;// Spacing between on-screen comment lines@property(nonatomic, assign) CGFloat lineMargin;// Maximum number of on-screen comment lines@property(nonatomic, assign) NSInteger maxShowLineCount;// Maximum number of on-screen comment lines in the center, at top, and at bottom@property(nonatomic, assign) NSInteger maxCenterLineCount;
// Tapping the back button during playback in portrait mode will trigger the API[SuperPlayerWindowShared setSuperPlayer:self.playerView];[SuperPlayerWindowShared show];// The API triggered by tapping the floating window to return to the main windowSuperPlayerWindowShared.backController = self;
PLAY_ACTION_AUTO_PLAY
, the video will be played back automatically, and the thumbnail will be displayed before the first video frame is loaded.PLAY_ACTION_MANUAL_PLAY
, the video will be played back only after the user clicks Play. The thumbnail will be displayed until the first video frame is loaded.SuperPlayerModel *model = [[SuperPlayerModel alloc] init];SuperPlayerVideoId *videoId = [SuperPlayerVideoId new];videoId.fileId = @"8602268011437356984";model.appId = 1400329071;model.videoId = videoId;// Playback mode, which can be set to automatic (`PLAY_ACTION_AUTO_PLAY`) or manual (`PLAY_ACTION_MANUAL_PLAY`)model.action = PLAY_ACTION_MANUAL_PLAY;// Specify the URL of an online file to use as the thumbnail. If `coverPictureUrl` is not set, the thumbnail configured in the VOD console will be used.model.customCoverImageUrl = @"http://1500005830.vod2.myqcloud.com/6c9a5118vodcq1500005830/cc1e28208602268011087336518/MXUW1a5I9TsA.png";[self.playerView playWithModelNeedLicence:model];
// Step 1. Create a `NSMutableArray` for the loop dataNSMutableArray *modelArray = [NSMutableArray array];SuperPlayerModel *model = [SuperPlayerModel new];SuperPlayerVideoId *videoId = [SuperPlayerVideoId new];videoId.fileId = @"8602268011437356984";model.appId = 1252463788;model.videoId = videoId;[modelArray addObject:model];model = [SuperPlayerModel new];videoId = [SuperPlayerVideoId new];videoId.fileId = @"4564972819219071679";model.appId = 1252463788;model.videoId = videoId;[modelArray addObject:model];// Step 2. Call the loop API of `SuperPlayerView`[self.playerView playWithModelListNeedLicence:modelArray isLoopPlayList:YES startIndex:0];
(void)playWithModelListNeedLicence:(NSArray *)playModelList isLoopPlayList:(BOOL)isLoop startIndex:(NSInteger)index;
Parameter | Type | Description |
playModelList | NSArray * | Loop data list |
isLoop | Boolean | Whether to loop the playlist |
index | NSInteger | Index of the video from which to start the playback |
// Enter the PiP modeif (![TXVodPlayer isSupportPictureInPicture]) {return;}[_vodPlayer enterPictureInPicture];// Exit the PiP mode[_vodPlayer exitPictureInPicture];
// Step 1. Create a preview modelTXVipWatchModel *model = [[TXVipWatchModel alloc] init];model.tipTtitle = @"You can preview 15 seconds of the video. Become a subscriber to watch the full video.";model.canWatchTime = 15;// Step 2. Set the preview modelself.playerView.vipWatchModel = model;// Step 3. Call the method below to display the preview[self.playerView showVipTipView];
TXVipWatchModel
class parameter description:Parameter | Type | Description |
tipTtitle | NSString | Pop-up message |
canWatchTime | float | Preview duration in seconds |
// Step 1. Create a video source information modelSuperPlayerModel * playermodel = [SuperPlayerModel new];// Add other information of the video source// Step 2. Create a dynamic watermark modelDynamicWaterModel *model = [[DynamicWaterModel alloc] init];// Step 3. Set the data of the dynamic watermarkmodel.dynamicWatermarkTip = @"shipinyun";model.textFont = 30;model.textColor = [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:0.8];playermodel.dynamicWaterModel = model;// Step 4. Call the method below to display the dynamic watermark[self.playerView playWithModelNeedLicence:playermodel];
DynamicWaterModel
:Parameter | Type | Description |
dynamicWatermarkTip | NSString | Watermark text |
textFont | CGFloat | Font size |
textColor | UIColor | Text color |
Demo
directory, run the pod update
command to generate the TXLiteAVDemo.xcworkspace
file again.
Was this page helpful?