Code Monkey home page Code Monkey logo

irplayeruishell's Introduction

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.

irplayeruishell's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.