├── .gitignore ├── Cartfile ├── Cartfile.resolved ├── Example.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── toshi0383.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── Example ├── AppDelegate.swift ├── Assets.xcassets │ └── AppIcon.appiconset │ │ ├── 100.png │ │ ├── 1024.png │ │ ├── 114.png │ │ ├── 120.png │ │ ├── 144.png │ │ ├── 152.png │ │ ├── 167.png │ │ ├── 180.png │ │ ├── 20.png │ │ ├── 29.png │ │ ├── 40.png │ │ ├── 50.png │ │ ├── 57.png │ │ ├── 58.png │ │ ├── 60.png │ │ ├── 72.png │ │ ├── 76.png │ │ ├── 80.png │ │ ├── 87.png │ │ └── Contents.json ├── Info.plist ├── LaunchScreen.storyboard ├── MetadataCollectorDelegate.swift ├── PlayerView.swift ├── RateButton.swift ├── RxProperty.swift ├── SeekBarView.swift ├── UIControlEventsExtension.swift ├── Utilities.swift ├── ViewController.swift └── ViewModel.swift ├── Package.resolved ├── Package.swift ├── Podfile ├── Podfile.lock ├── README.md ├── Sources ├── Info.plist ├── VideoPlayer.h └── VideoPlayer │ ├── AVAssetResourceLoaderDelegateProxy.swift │ ├── PlayerItemError.swift │ ├── Private │ ├── AVAssetExtension.swift │ ├── AVAudioSession+SetCategory.h │ ├── AVAudioSession+SetCategory.m │ ├── AVPlayerExtension.swift │ ├── AVPlayerItemExtension.swift │ ├── NSObject+Rx.swift │ ├── RxExt.swift │ └── RxHelpers.swift │ ├── VideoPlayer.swift │ ├── VideoPlayerMonitorView.swift │ └── VideoPlayerStream.swift ├── TODO.md ├── Tests └── VideoPlayerTests │ ├── AVAssetResourceLoaderDelegateTests.swift │ ├── BridgingHeader.h │ ├── Info.plist │ ├── MockVideoPlayerFactory.swift │ └── VideoPlayerTests.swift └── project.yml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.xcodeproj 3 | .build/ 4 | Carthage/ 5 | Pods/ 6 | user.xcconfig 7 | Exclude/ 8 | -------------------------------------------------------------------------------- /Cartfile: -------------------------------------------------------------------------------- 1 | github "ReactiveX/RxSwift" 2 | -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "ReactiveX/RxSwift" "4.4.2" 2 | -------------------------------------------------------------------------------- /Example.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Example.xcworkspace/xcuserdata/toshi0383.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example.xcworkspace/xcuserdata/toshi0383.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Example.xcworkspace/xcuserdata/toshi0383.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example.xcworkspace/xcuserdata/toshi0383.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist -------------------------------------------------------------------------------- /Example/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/AppDelegate.swift -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /Example/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Example/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Info.plist -------------------------------------------------------------------------------- /Example/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/LaunchScreen.storyboard -------------------------------------------------------------------------------- /Example/MetadataCollectorDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/MetadataCollectorDelegate.swift -------------------------------------------------------------------------------- /Example/PlayerView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/PlayerView.swift -------------------------------------------------------------------------------- /Example/RateButton.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/RateButton.swift -------------------------------------------------------------------------------- /Example/RxProperty.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/RxProperty.swift -------------------------------------------------------------------------------- /Example/SeekBarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/SeekBarView.swift -------------------------------------------------------------------------------- /Example/UIControlEventsExtension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/UIControlEventsExtension.swift -------------------------------------------------------------------------------- /Example/Utilities.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/Utilities.swift -------------------------------------------------------------------------------- /Example/ViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/ViewController.swift -------------------------------------------------------------------------------- /Example/ViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Example/ViewModel.swift -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Package.resolved -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Package.swift -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Podfile -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Podfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/Info.plist -------------------------------------------------------------------------------- /Sources/VideoPlayer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer.h -------------------------------------------------------------------------------- /Sources/VideoPlayer/AVAssetResourceLoaderDelegateProxy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/AVAssetResourceLoaderDelegateProxy.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/PlayerItemError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/PlayerItemError.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/AVAssetExtension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/AVAssetExtension.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/AVAudioSession+SetCategory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/AVAudioSession+SetCategory.h -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/AVAudioSession+SetCategory.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/AVAudioSession+SetCategory.m -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/AVPlayerExtension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/AVPlayerExtension.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/AVPlayerItemExtension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/AVPlayerItemExtension.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/NSObject+Rx.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/NSObject+Rx.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/RxExt.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/RxExt.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/Private/RxHelpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/Private/RxHelpers.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/VideoPlayer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/VideoPlayer.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/VideoPlayerMonitorView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/VideoPlayerMonitorView.swift -------------------------------------------------------------------------------- /Sources/VideoPlayer/VideoPlayerStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Sources/VideoPlayer/VideoPlayerStream.swift -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/TODO.md -------------------------------------------------------------------------------- /Tests/VideoPlayerTests/AVAssetResourceLoaderDelegateTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Tests/VideoPlayerTests/AVAssetResourceLoaderDelegateTests.swift -------------------------------------------------------------------------------- /Tests/VideoPlayerTests/BridgingHeader.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Tests/VideoPlayerTests/BridgingHeader.h -------------------------------------------------------------------------------- /Tests/VideoPlayerTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Tests/VideoPlayerTests/Info.plist -------------------------------------------------------------------------------- /Tests/VideoPlayerTests/MockVideoPlayerFactory.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Tests/VideoPlayerTests/MockVideoPlayerFactory.swift -------------------------------------------------------------------------------- /Tests/VideoPlayerTests/VideoPlayerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/Tests/VideoPlayerTests/VideoPlayerTests.swift -------------------------------------------------------------------------------- /project.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toshi0383/VideoPlayer/HEAD/project.yml --------------------------------------------------------------------------------