Skip to content

IRPlayerUIShell is a powerful UI Shell framework for the video player(IRPlayer) for iOS.

License

Notifications You must be signed in to change notification settings

irons163/IRPlayerUIShell

Repository files navigation

Build Status Platform

IRPlayerUIShell

  • IRPlayerUIShell is a powerful UI Shell framework for the video player(IRPlayer) for iOS.

Features

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

Future

  • Support Multi video player in one page(UITableView, UICollectionView, etc).
  • More powerful custom UI design.

Install

Git

  • Git clone this project.
  • Copy this project into your own project.
  • Add the .xcodeproj into you project and link it as embed framework.

Options

  • You can remove the demo and ScreenShots folder.

Cocoapods

  • Add pod 'IRPlayerUIShell' in the Podfile
  • pod install

Usage

Basic

  • See IRPlayerUIShellViewController for demo.

  • Import framework

#import <IRPlayerUIShell/IRPlayerUIShell.h>
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
Demo Demo
Volume Brightness
Demo Demo
Full Screen Lock Screen
Demo Demo

Copyright

This project is inspired from ZFPlayer.