All Projects → toshi0383 → Videoplayer

toshi0383 / Videoplayer

AVPlayer control and monitoring made easy (with Rx)

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Videoplayer

Modernavplayer
ModernAVPlayer is a persistence AVPlayer wrapper
Stars: ✭ 179 (+517.24%)
Mutual labels:  rxswift, avplayer
Rxswiftexamples
Examples and resources for RxSwift.
Stars: ✭ 930 (+3106.9%)
Mutual labels:  rxswift
Coordinator Mvvm Rx Example
Example of MVVM-C architecture implemented with RxSwift
Stars: ✭ 469 (+1517.24%)
Mutual labels:  rxswift
Rxcombine
Bi-directional type bridging between RxSwift and Apple's Combine framework
Stars: ✭ 741 (+2455.17%)
Mutual labels:  rxswift
Iossampleapp
Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding
Stars: ✭ 510 (+1658.62%)
Mutual labels:  rxswift
Artify Core
The sweet heart of Artify 👑
Stars: ✭ 17 (-41.38%)
Mutual labels:  rxswift
Veditorkit
Lightweight and Powerful Editor Kit
Stars: ✭ 441 (+1420.69%)
Mutual labels:  rxswift
Iosdc2017
iOSDC2017発表資料
Stars: ✭ 13 (-55.17%)
Mutual labels:  rxswift
Rxfeedback.swift
The universal system operator and architecture for RxSwift
Stars: ✭ 928 (+3100%)
Mutual labels:  rxswift
Rxautomaton
🤖 RxSwift + State Machine, inspired by Redux and Elm.
Stars: ✭ 711 (+2351.72%)
Mutual labels:  rxswift
Awesome Swift Korean Lecture
훌륭한 Swift 세션 동영상(강좌), 한글 자막있는 혹은 한국어 강의 정보 링크 모음 (Awesome Swift Korean lecture information)
Stars: ✭ 649 (+2137.93%)
Mutual labels:  rxswift
Datasources
💾 🔜📱 Type-safe data-driven CollectionView, TableView Framework. (We can also use ASCollectionNode)
Stars: ✭ 553 (+1806.9%)
Mutual labels:  rxswift
Ios Architecture
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
Stars: ✭ 901 (+3006.9%)
Mutual labels:  rxswift
Drrrible
Dribbble for iOS using ReactorKit
Stars: ✭ 487 (+1579.31%)
Mutual labels:  rxswift
Rxdatasources Texture
ASTable and ASCollection Data Sources for RxSwift (Texture)
Stars: ✭ 25 (-13.79%)
Mutual labels:  rxswift
Rxswift
Reactive Programming in Swift
Stars: ✭ 21,163 (+72875.86%)
Mutual labels:  rxswift
Audioplayer
AudioPlayer is syntax and feature sugar over AVPlayer. It plays your audio files (local & remote).
Stars: ✭ 614 (+2017.24%)
Mutual labels:  avplayer
Vimediacache
Cache media file while play media using AVPlayer
Stars: ✭ 758 (+2513.79%)
Mutual labels:  avplayer
Flags
🇸🇪 Flag extension make flag emoji, image
Stars: ✭ 28 (-3.45%)
Mutual labels:  rxswift
Slidestock
Viewer app for slides provided by speaker deck.
Stars: ✭ 10 (-65.52%)
Mutual labels:  rxswift

VideoPlayer

Xcode Swift

AVPlayer control made easy.

design

VideoPlayer
- VideoPlayerControl
- VideoPlayerMonitor

Features (Including Example only features)

work in progress

  • [x] Play/Pause/Seek
  • [x] Background Playback
  • [x] Background AirPlay
  • [x] Built-in player MonitorView for debugging
  • [x] allows recording or not (defaults to no)
  • [x] fundamental player state observables (e.g. rate, periodicTime, duration..)
  • [x] Timed Metadata (MPEG2 transport stream only)
  • [ ] any loading state observable

Demo code in Example.app

  • [x] In-Playlist Timed Metadata
  • [ ] Cross-viewcontroller AirPlay (will be in Example soon)
  • [ ] Picture-in-Picture (will be in Example soon)

Usage

Initializing AVPlayer

Observe VideoPlayer.player: Single<AVPlayer> to get AVPlayer instance.

See: Example

Monitor and Control state

Do not write player?.pause() any more.

See: Example

Encrypted contents

VideoPlayerFactory initializer accepts AVAssetResourceLoaderDelegate. Set your instance which handles EXT-X-KEY methods.

Handling Errors

TBD

See: Example

Testing

See: VideoPlayerTests

You can simulate player behavior by yourself to improve test coverage of your app.

Build Example

  1. Make sure your default xcode-select -p points at correct Xcode version. (Currently Xcode10.1)

  2. Run following

    carthage bootstrap --platform iOS
    xcodegen
    
  3. Open Example.xcodeproj

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].