Irons163
2 min readMar 9, 2020

IRPlayerUIShell — A powerful UI Shell framework for the video player(IRPlayer) for iOS

IRPlayerUIShell

Features

  • Support customize UI for IRPlayer.
  • Support some media controllers.
  • Seek Bar
  • Brightness
  • Volume
  • Full Screen
  • Has a Demo

Future

  • Support Multi video player in one page(UITableView, UICollectionView, etc).
  • More powerful custom UI design.
  • Make a framework for this project.

Install

Git

  • Git clone this project.

Cocoapods

  • Not support yet.

Usage

Basic

  • See IRPlayerUIShellViewController for demo.
  • Create a IRPlayer instance.
self.playerImp = [IRPlayerImp player];
self.playerImp.decoder = [IRPlayerDecoder FFmpegDecoder];
[self.playerImp replaceVideoWithURL:VIDEO_URL];
  • Create a IRPlayerController instance, set the player and containerView while init, and then set the controlView.
self.player = [IRPlayerController playerWithPlayerManager:self.playerImp containerView:self.containerView];
self.player.controlView = self.controlView;
  • Set the video urls, and then the first video will play!
self.player.assetURLs = self.assetURLs;

Advanced settings

  • If app is in the background, still play continue.
self.player.pauseWhenAppResignActive = NO;
  • Listener for orientation change.
@weakify(self)
self.player.orientationWillChange = ^(IRPlayerController * _Nonnull player, BOOL isFullScreen) {
@strongify(self)
[self setNeedsStatusBarAppearanceUpdate];
};
  • Listener for player go end.
self.player.playerDidToEnd = ^(id  _Nonnull asset) {
@strongify(self)
[self.player.currentPlayerManager pause];
[self.player.currentPlayerManager play];
[self.player playTheNext];
if (!self.player.isLastAssetURL) {
NSString *title = [NSString stringWithFormat:@"title:%zd",self.player.currentPlayIndex];
[self.controlView showTitle:title coverURLString:kVideoCover fullScreenMode:IRFullScreenModeLandscape];
} else {
[self.player stop];
}
};
  • More, coming soon…

Screenshots

Play Seek

Volume Brightness

Full Screen Lock Screen

Copyright

This project is inspired from ZFPlayer.

No responses yet