├── Demo └── yg_mediaDemo │ ├── Podfile │ ├── Pods │ ├── Headers │ │ ├── Private │ │ │ └── YG_ThunderPlayer │ │ │ │ ├── YG_MeidaView.h │ │ │ │ ├── VideoPlayView.h │ │ │ │ └── FullViewController.h │ │ └── Public │ │ │ └── YG_ThunderPlayer │ │ │ ├── VideoPlayView.h │ │ │ ├── YG_MeidaView.h │ │ │ └── FullViewController.h │ ├── Target Support Files │ │ ├── YG_ThunderPlayer │ │ │ ├── YG_ThunderPlayer-prefix.pch │ │ │ ├── YG_ThunderPlayer-dummy.m │ │ │ └── YG_ThunderPlayer.xcconfig │ │ └── Pods-yg_mediaDemo │ │ │ ├── Pods-yg_mediaDemo-dummy.m │ │ │ ├── Pods-yg_mediaDemo.debug.xcconfig │ │ │ ├── Pods-yg_mediaDemo.release.xcconfig │ │ │ ├── Pods-yg_mediaDemo-acknowledgements.markdown │ │ │ ├── Pods-yg_mediaDemo-acknowledgements.plist │ │ │ ├── Pods-yg_mediaDemo-frameworks.sh │ │ │ └── Pods-yg_mediaDemo-resources.sh │ ├── YG_ThunderPlayer │ │ ├── YG_ThunderPlayer │ │ │ ├── resource │ │ │ │ ├── thumbImage@2x.png │ │ │ │ ├── MaximumTrackImage@2x.png │ │ │ │ ├── MinimumTrackImage@2x.png │ │ │ │ ├── bg_media_default@3x.png │ │ │ │ ├── full_pause_btn_hl@2x.png │ │ │ │ ├── full_pause_btn_hl@3x.png │ │ │ │ ├── full_play_btn_hl@2x.png │ │ │ │ ├── full_play_btn_hl@3x.png │ │ │ │ ├── full_minimize_btn_hl@2x.png │ │ │ │ ├── full_minimize_btn_hl@3x.png │ │ │ │ ├── mini_launchFullScreen_btn_hl@2x.png │ │ │ │ ├── mini_launchFullScreen_btn_hl@3x.png │ │ │ │ ├── YG_ThunderPlayer.bundle │ │ │ │ │ ├── thumbImage@2x.png │ │ │ │ │ ├── bg_media_default@3x.png │ │ │ │ │ ├── en.lproj │ │ │ │ │ │ └── Root.strings │ │ │ │ │ ├── full_play_btn_hl@2x.png │ │ │ │ │ ├── full_play_btn_hl@3x.png │ │ │ │ │ ├── MaximumTrackImage@2x.png │ │ │ │ │ ├── MinimumTrackImage@2x.png │ │ │ │ │ ├── full_pause_btn_hl@2x.png │ │ │ │ │ ├── full_pause_btn_hl@3x.png │ │ │ │ │ ├── full_minimize_btn_hl@2x.png │ │ │ │ │ ├── full_minimize_btn_hl@3x.png │ │ │ │ │ ├── mini_launchFullScreen_btn_hl@2x.png │ │ │ │ │ └── mini_launchFullScreen_btn_hl@3x.png │ │ │ │ └── VideoPlayView.xib │ │ │ ├── YG_MeidaView.h │ │ │ ├── FullViewController.h │ │ │ ├── VideoPlayView.h │ │ │ ├── FullViewController.m │ │ │ └── VideoPlayView.m │ │ ├── README.md │ │ └── LICENSE │ ├── Manifest.lock │ └── Pods.xcodeproj │ │ └── project.pbxproj │ ├── yg_mediaDemo.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── project.pbxproj │ ├── Podfile.lock │ ├── yg_mediaDemo │ ├── ViewController.h │ ├── AppDelegate.h │ ├── main.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard │ ├── ViewController.m │ └── AppDelegate.m │ └── yg_mediaDemo.xcworkspace │ └── contents.xcworkspacedata ├── YG_ThunderPlayer ├── resource │ ├── thumbImage@2x.png │ ├── MaximumTrackImage@2x.png │ ├── MinimumTrackImage@2x.png │ ├── bg_media_default@3x.png │ ├── full_pause_btn_hl@2x.png │ ├── full_pause_btn_hl@3x.png │ ├── full_play_btn_hl@2x.png │ ├── full_play_btn_hl@3x.png │ ├── full_minimize_btn_hl@2x.png │ ├── full_minimize_btn_hl@3x.png │ ├── mini_launchFullScreen_btn_hl@2x.png │ ├── mini_launchFullScreen_btn_hl@3x.png │ ├── YG_ThunderPlayer.bundle │ │ ├── thumbImage@2x.png │ │ ├── bg_media_default@3x.png │ │ ├── en.lproj │ │ │ └── Root.strings │ │ ├── full_play_btn_hl@2x.png │ │ ├── full_play_btn_hl@3x.png │ │ ├── MaximumTrackImage@2x.png │ │ ├── MinimumTrackImage@2x.png │ │ ├── full_pause_btn_hl@2x.png │ │ ├── full_pause_btn_hl@3x.png │ │ ├── full_minimize_btn_hl@2x.png │ │ ├── full_minimize_btn_hl@3x.png │ │ ├── mini_launchFullScreen_btn_hl@2x.png │ │ └── mini_launchFullScreen_btn_hl@3x.png │ └── VideoPlayView.xib ├── YG_MeidaView.h ├── FullViewController.h ├── VideoPlayView.h ├── FullViewController.m └── VideoPlayView.m ├── YG_ThunderPlayer.podspec ├── LICENSE ├── README.md └── .gitignore /Demo/yg_mediaDemo/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, "8.0" 2 | 3 | target 'yg_mediaDemo' do 4 | 5 | pod 'YG_ThunderPlayer' 6 | 7 | end -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Private/YG_ThunderPlayer/YG_MeidaView.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/YG_MeidaView.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Public/YG_ThunderPlayer/VideoPlayView.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/VideoPlayView.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Public/YG_ThunderPlayer/YG_MeidaView.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/YG_MeidaView.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Private/YG_ThunderPlayer/VideoPlayView.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/VideoPlayView.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Public/YG_ThunderPlayer/FullViewController.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/FullViewController.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Headers/Private/YG_ThunderPlayer/FullViewController.h: -------------------------------------------------------------------------------- 1 | ../../../YG_ThunderPlayer/YG_ThunderPlayer/FullViewController.h -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/YG_ThunderPlayer/YG_ThunderPlayer-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/thumbImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/thumbImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/MaximumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/MaximumTrackImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/MinimumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/MinimumTrackImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/bg_media_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/bg_media_default@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_play_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_play_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_play_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_play_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/thumbImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/thumbImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/bg_media_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/bg_media_default@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MaximumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MaximumTrackImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MinimumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MinimumTrackImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/YG_MeidaView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YG_MeidaView.h 3 | // Pods 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // 7 | // 8 | 9 | #import "VideoPlayView.h" 10 | #import "FullViewController.h" 11 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/thumbImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/thumbImage@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@2x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/YG_ThunderPlayer/YG_ThunderPlayer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YG_ThunderPlayer : NSObject 3 | @end 4 | @implementation PodsDummy_YG_ThunderPlayer 5 | @end 6 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_yg_mediaDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_yg_mediaDemo 5 | @end 6 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/MaximumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/MaximumTrackImage@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/MinimumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/MinimumTrackImage@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/bg_media_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/bg_media_default@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/YG_MeidaView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YG_MeidaView.h 3 | // Pods 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // 7 | // 8 | 9 | #import "VideoPlayView.h" 10 | #import "FullViewController.h" 11 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/thumbImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/thumbImage@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/bg_media_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/bg_media_default@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/en.lproj/Root.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/en.lproj/Root.strings -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_play_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MaximumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MaximumTrackImage@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MinimumTrackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/MinimumTrackImage@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_pause_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/full_minimize_btn_hl@3x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - YG_ThunderPlayer (0.2.5) 3 | 4 | DEPENDENCIES: 5 | - YG_ThunderPlayer 6 | 7 | SPEC CHECKSUMS: 8 | YG_ThunderPlayer: 4c6748ceeea3cec35ddb82c1c10a8f5cb4ffee81 9 | 10 | PODFILE CHECKSUM: 35019eb7a62d417cc064026d7006887d1a29936d 11 | 12 | COCOAPODS: 1.0.1 13 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@2x.png -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/silenCetestifY/YG_ThunderPlayer/HEAD/Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle/mini_launchFullScreen_btn_hl@3x.png -------------------------------------------------------------------------------- /YG_ThunderPlayer/FullViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FullViewController.h 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FullViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - YG_ThunderPlayer (0.2.5) 3 | 4 | DEPENDENCIES: 5 | - YG_ThunderPlayer 6 | 7 | SPEC CHECKSUMS: 8 | YG_ThunderPlayer: 4c6748ceeea3cec35ddb82c1c10a8f5cb4ffee81 9 | 10 | PODFILE CHECKSUM: 35019eb7a62d417cc064026d7006887d1a29936d 11 | 12 | COCOAPODS: 1.0.1 13 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // yg_mediaDemo 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // Copyright © 2016年 yg_self. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/FullViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FullViewController.h 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FullViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // yg_mediaDemo 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // Copyright © 2016年 yg_self. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // yg_mediaDemo 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // Copyright © 2016年 yg_self. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/VideoPlayView.h: -------------------------------------------------------------------------------- 1 | // 2 | // VideoPlayView.h 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol VideoPlayViewDelegate 13 | 14 | @optional 15 | - (void)videoplayViewSwitchOrientation:(BOOL)isFull; 16 | 17 | @end 18 | 19 | @interface VideoPlayView : UIView 20 | 21 | + (instancetype)videoPlayView; 22 | 23 | @property (weak, nonatomic) id delegate; 24 | 25 | @property (nonatomic, strong) AVPlayerItem *playerItem; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/VideoPlayView.h: -------------------------------------------------------------------------------- 1 | // 2 | // VideoPlayView.h 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol VideoPlayViewDelegate 13 | 14 | @optional 15 | - (void)videoplayViewSwitchOrientation:(BOOL)isFull; 16 | 17 | @end 18 | 19 | @interface VideoPlayView : UIView 20 | 21 | + (instancetype)videoPlayView; 22 | 23 | @property (weak, nonatomic) id delegate; 24 | 25 | @property (nonatomic, strong) AVPlayerItem *playerItem; 26 | 27 | - (void)removeProgressTimer; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/FullViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // FullViewController.m 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import "FullViewController.h" 10 | 11 | @interface FullViewController () 12 | 13 | @end 14 | 15 | @implementation FullViewController 16 | 17 | - (instancetype)init 18 | { 19 | if (self = [super init]) { 20 | // self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 21 | } 22 | return self; 23 | } 24 | 25 | - (UIInterfaceOrientationMask)supportedInterfaceOrientations 26 | { 27 | return UIInterfaceOrientationMaskLandscapeLeft; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/FullViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // FullViewController.m 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import "FullViewController.h" 10 | 11 | @interface FullViewController () 12 | 13 | @end 14 | 15 | @implementation FullViewController 16 | 17 | - (instancetype)init 18 | { 19 | if (self = [super init]) { 20 | // self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 21 | } 22 | return self; 23 | } 24 | 25 | - (UIInterfaceOrientationMask)supportedInterfaceOrientations 26 | { 27 | return UIInterfaceOrientationMaskLandscapeLeft; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/YG_ThunderPlayer/YG_ThunderPlayer.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YG_ThunderPlayer 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YG_ThunderPlayer" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/YG_ThunderPlayer" 4 | OTHER_LDFLAGS = -framework "AVFoundation" -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/YG_ThunderPlayer" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/YG_ThunderPlayer" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/YG_ThunderPlayer" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"YG_ThunderPlayer" -framework "AVFoundation" -framework "Foundation" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/YG_ThunderPlayer" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/YG_ThunderPlayer" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/YG_ThunderPlayer" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"YG_ThunderPlayer" -framework "AVFoundation" -framework "Foundation" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/README.md: -------------------------------------------------------------------------------- 1 | # YG_ThunderPlayer 2 | #**A Cunstom MediaPlayView use for ios** 3 | 4 | ##也可以CocoaPods导入 5 | ``` 6 | pod 'YG_ThunderPlayer', '~> 0.2.4' 7 | pod install 8 | 9 | ``` 10 | 11 | 12 | - **现已支持.m3u8格式视频直播流**
13 | 14 | - **轻量级视频播放控件,只需要设置一个View**
15 | 16 | - **可以任意位置使用的playView,用于播放**
17 | 18 | - **可以全屏,进度拖动,来回切换**
19 | ###支持视频直播解析 .m3u8文件 20 |
21 | ###你可以将 playView 嵌入到Cell中 22 | 23 |
24 | 25 | ###可以实现全屏播放 26 |
27 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /YG_ThunderPlayer.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "YG_ThunderPlayer" 3 | s.version = "0.2.8" 4 | s.summary = "A MediaView used on iOS." 5 | s.description = <<-DESC 6 | It is a cunstom MediaView used on iOS, which implement by Objective-C. 7 | DESC 8 | s.homepage = "https://github.com/silenCetestifY/YG_ThunderPlayer" 9 | 10 | s.license = 'MIT' 11 | s.author = { "吴炎根" => "1072289237@qq.com" } 12 | s.source = { :git => "https://github.com/silenCetestifY/YG_ThunderPlayer.git", :tag => s.version.to_s } 13 | 14 | 15 | s.platform = :ios, '8.0' 16 | 17 | s.requires_arc = true 18 | 19 | s.source_files = 'YG_ThunderPlayer/**/*.{h,m}' 20 | 21 | s.resource = 'YG_ThunderPlayer/resource/*.{png,xib,nib,bundle}' 22 | 23 | s.frameworks = 'Foundation', 'AVFoundation', 'UIKit' 24 | 25 | end -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 YG_Code 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 YG_Code 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YG_ThunderPlayer 2 | #**A Cunstom MediaPlayView use for ios** 3 | 4 | ##也可以CocoaPods导入 5 | ``` 6 | pod 'YG_ThunderPlayer', '~> 0.2.6' 7 | pod install 8 | 9 | ``` 10 | ###直播: 11 | - **支持HTTP,RTP,HLS,RTMP等多格式流媒体协议直播**
12 | - **支持常见视频格式视频**
13 | 14 | - **比如实现RTMP协议的流媒体直播,你需要去我网盘下载我集成编译好的类库:http://pan.baidu.com/s/1dFdooXr 提取码:m47b**
15 | - **下载完成后,将类库链接到项目:接着链接libz.tbd,libbz2.tbd,AudioToolbox.framework,AVFoundation.framework,CoreGraphics.framework,CoreMedia.framework,CoreVideo.framework,MediaPlayer.framework,MobileCoreServices.framework,OpenGLES.framework,QuartzCore.framework,UIKit.framework,VideoToolbox.framework**
16 | 17 | 18 | ###只支持.m3u8流媒体直播,及常见视频格式播放: 19 | - **现已支持.m3u8格式视频直播流**
20 | 21 | - **轻量级视频播放控件,只需要设置一个View**
22 | 23 | - **可以任意位置使用的playView,用于播放**
24 | 25 | - **可以全屏,进度拖动,来回切换**
26 | ###支持视频直播解析 .m3u8文件 27 |
28 | ###你可以将 playView 嵌入到Cell中 29 | 30 |
31 | 32 | ###可以实现全屏播放 33 |
34 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSAppTransportSecurity 26 | 27 | NSAllowsArbitraryLoads 28 | 29 | 30 | UILaunchStoryboardName 31 | LaunchScreen 32 | UIMainStoryboardFile 33 | Main 34 | UIRequiredDeviceCapabilities 35 | 36 | armv7 37 | 38 | UISupportedInterfaceOrientations 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## YG_ThunderPlayer 5 | 6 | The MIT License (MIT) 7 | 8 | Copyright (c) 2016 YG_Code 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | Generated by CocoaPods - https://cocoapods.org 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | # CocoaPods 31 | # 32 | # We recommend against adding the Pods directory to your .gitignore. However 33 | # you should judge for yourself, the pros and cons are mentioned at: 34 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 35 | # 36 | # Pods/ 37 | 38 | # Carthage 39 | # 40 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 41 | # Carthage/Checkouts 42 | 43 | Carthage/Build 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 51 | 52 | fastlane/report.xml 53 | fastlane/screenshots 54 | 55 | #Code Injection 56 | # 57 | # After new code Injection tools there's a generated folder /iOSInjectionProject 58 | # https://github.com/johnno1962/injectionforxcode 59 | 60 | iOSInjectionProject/ 61 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // yg_mediaDemo 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // Copyright © 2016年 yg_self. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import 11 | 12 | @interface ViewController () 13 | 14 | /** 你需要个PlayerView用来播放 */ 15 | @property (nonatomic,strong) VideoPlayView *playView; 16 | /** 全屏视图 */ 17 | @property (nonatomic,strong) FullViewController *fullVc; 18 | 19 | @end 20 | 21 | @implementation ViewController 22 | 23 | - (void)viewDidLoad { 24 | 25 | [super viewDidLoad]; 26 | 27 | // 创建playView,设置其代理 28 | self.playView = [VideoPlayView videoPlayView]; 29 | self.playView.delegate = self; 30 | self.fullVc = [[FullViewController alloc] init]; 31 | 32 | // 给入一个URL地址 33 | AVPlayerItem *playItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://baobab.cdn.wandoujia.com/14468618701471.mp4"]]; 34 | self.playView.playerItem = playItem; 35 | 36 | // 设置frame添加到View上 37 | self.playView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width*9/16); 38 | [self.view addSubview:self.playView]; 39 | 40 | } 41 | 42 | 43 | #pragma mark - playView代理,实现全屏 44 | -(void)videoplayViewSwitchOrientation:(BOOL)isFull 45 | { 46 | if (isFull) { 47 | [self presentViewController:self.fullVc animated:YES completion:^{ 48 | self.playView.frame = self.fullVc.view.bounds; 49 | [self.fullVc.view addSubview:self.playView]; 50 | }]; 51 | } else { 52 | [self.fullVc dismissViewControllerAnimated:YES completion:^{ 53 | [self.view addSubview:self.playView]; 54 | // 这里设置返回时的frame 55 | self.playView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width*9/16); 56 | }]; 57 | } 58 | } 59 | 60 | 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // yg_mediaDemo 4 | // 5 | // Created by silenCetestifY on 16/6/22. 6 | // Copyright © 2016年 yg_self. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 19 | // Override point for customization after application launch. 20 | return YES; 21 | } 22 | 23 | - (void)applicationWillResignActive:(UIApplication *)application { 24 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 25 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application { 29 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 30 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 31 | } 32 | 33 | - (void)applicationWillEnterForeground:(UIApplication *)application { 34 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 35 | } 36 | 37 | - (void)applicationDidBecomeActive:(UIApplication *)application { 38 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application { 42 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | The MIT License (MIT) 18 | 19 | Copyright (c) 2016 YG_Code 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | Title 40 | YG_ThunderPlayer 41 | Type 42 | PSGroupSpecifier 43 | 44 | 45 | FooterText 46 | Generated by CocoaPods - https://cocoapods.org 47 | Title 48 | 49 | Type 50 | PSGroupSpecifier 51 | 52 | 53 | StringsTable 54 | Acknowledgements 55 | Title 56 | Acknowledgements 57 | 58 | 59 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/VideoPlayView.m: -------------------------------------------------------------------------------- 1 | // 2 | // VideoPlayView.m 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import "VideoPlayView.h" 10 | #define KYGThunderPlayerBundle [NSBundle bundleForClass:[self class]] 11 | 12 | @interface VideoPlayView() 13 | 14 | /* 播放器 */ 15 | @property (nonatomic, strong) AVPlayer *player; 16 | 17 | // 播放器的Layer 18 | @property (weak, nonatomic) AVPlayerLayer *playerLayer; 19 | 20 | @property (weak, nonatomic) IBOutlet UIImageView *imageView; 21 | @property (weak, nonatomic) IBOutlet UIView *toolView; 22 | @property (weak, nonatomic) IBOutlet UIButton *playOrPauseBtn; 23 | @property (weak, nonatomic) IBOutlet UISlider *progressSlider; 24 | @property (weak, nonatomic) IBOutlet UILabel *timeLabel; 25 | 26 | // 记录当前是否显示了工具栏 27 | @property (assign, nonatomic) BOOL isShowToolView; 28 | 29 | /* 定时器 */ 30 | @property (nonatomic, strong) NSTimer *progressTimer; 31 | 32 | #pragma mark - 监听事件的处理 33 | - (IBAction)playOrPause:(UIButton *)sender; 34 | - (IBAction)switchOrientation:(UIButton *)sender; 35 | - (IBAction)slider; 36 | - (IBAction)startSlider; 37 | - (IBAction)tapAction:(UITapGestureRecognizer *)sender; 38 | - (IBAction)sliderValueChange; 39 | 40 | @end 41 | 42 | @implementation VideoPlayView 43 | 44 | // 快速创建View的方法 45 | + (instancetype)videoPlayView 46 | { 47 | // return [[[NSBundle mainBundle] loadNibNamed:@"VideoPlayView" owner:nil options:nil] firstObject]; 48 | return [[KYGThunderPlayerBundle loadNibNamed:@"VideoPlayView" owner:self options:nil] firstObject]; 49 | } 50 | 51 | - (void)awakeFromNib 52 | { 53 | self.player = [[AVPlayer alloc] init]; 54 | self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 55 | [self.imageView.layer addSublayer:self.playerLayer]; 56 | 57 | self.toolView.alpha = 0; 58 | self.isShowToolView = NO; 59 | 60 | [self.progressSlider setThumbImage:[UIImage imageNamed:@"thumbImage"] forState:UIControlStateNormal]; 61 | [self.progressSlider setMaximumTrackImage:[UIImage imageNamed:@"MaximumTrackImage"] forState:UIControlStateNormal]; 62 | [self.progressSlider setMinimumTrackImage:[UIImage imageNamed:@"MinimumTrackImage"] forState:UIControlStateNormal]; 63 | 64 | [self removeProgressTimer]; 65 | [self addProgressTimer]; 66 | 67 | self.playOrPauseBtn.selected = YES; 68 | } 69 | 70 | - (void)layoutSubviews 71 | { 72 | [super layoutSubviews]; 73 | 74 | self.playerLayer.frame = self.bounds; 75 | } 76 | 77 | #pragma mark - 设置播放的视频 78 | - (void)setPlayerItem:(AVPlayerItem *)playerItem 79 | { 80 | _playerItem = playerItem; 81 | [self.player replaceCurrentItemWithPlayerItem:playerItem]; 82 | [self.player play]; 83 | } 84 | 85 | // 是否显示工具的View 86 | - (IBAction)tapAction:(UITapGestureRecognizer *)sender { 87 | [UIView animateWithDuration:0.5 animations:^{ 88 | if (self.isShowToolView) { 89 | self.toolView.alpha = 0; 90 | self.isShowToolView = NO; 91 | } else { 92 | self.toolView.alpha = 1; 93 | self.isShowToolView = YES; 94 | } 95 | }]; 96 | } 97 | // 暂停按钮的监听 98 | - (IBAction)playOrPause:(UIButton *)sender { 99 | sender.selected = !sender.selected; 100 | if (sender.selected) { 101 | [self.player play]; 102 | 103 | [self addProgressTimer]; 104 | } else { 105 | [self.player pause]; 106 | 107 | [self removeProgressTimer]; 108 | } 109 | } 110 | 111 | #pragma mark - 定时器操作 112 | - (void)addProgressTimer 113 | { 114 | self.progressTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateProgressInfo) userInfo:nil repeats:YES]; 115 | [[NSRunLoop mainRunLoop] addTimer:self.progressTimer forMode:NSRunLoopCommonModes]; 116 | } 117 | 118 | - (void)removeProgressTimer 119 | { 120 | [self.progressTimer invalidate]; 121 | self.progressTimer = nil; 122 | } 123 | 124 | - (void)updateProgressInfo 125 | { 126 | // 1.更新时间 127 | self.timeLabel.text = [self timeString]; 128 | 129 | // 2.设置进度条的value 130 | self.progressSlider.value = CMTimeGetSeconds(self.player.currentTime) / CMTimeGetSeconds(self.player.currentItem.duration); 131 | } 132 | 133 | - (NSString *)timeString 134 | { 135 | NSTimeInterval duration = CMTimeGetSeconds(self.player.currentItem.duration); 136 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentTime); 137 | 138 | return [self stringWithCurrentTime:currentTime duration:duration]; 139 | } 140 | 141 | // 切换屏幕的方向 142 | - (IBAction)switchOrientation:(UIButton *)sender { 143 | sender.selected = !sender.selected; 144 | if ([self.delegate respondsToSelector:@selector(videoplayViewSwitchOrientation:)]) { 145 | [self.delegate videoplayViewSwitchOrientation:sender.selected]; 146 | } 147 | } 148 | 149 | - (IBAction)slider { 150 | [self addProgressTimer]; 151 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentItem.duration) * self.progressSlider.value; 152 | 153 | // 设置当前播放时间 154 | [self.player seekToTime:CMTimeMakeWithSeconds(currentTime, NSEC_PER_SEC) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero]; 155 | 156 | [self.player play]; 157 | } 158 | 159 | - (IBAction)startSlider { 160 | [self removeProgressTimer]; 161 | } 162 | 163 | - (IBAction)sliderValueChange { 164 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentItem.duration) * self.progressSlider.value; 165 | NSTimeInterval duration = CMTimeGetSeconds(self.player.currentItem.duration); 166 | self.timeLabel.text = [self stringWithCurrentTime:currentTime duration:duration]; 167 | } 168 | 169 | - (NSString *)stringWithCurrentTime:(NSTimeInterval)currentTime duration:(NSTimeInterval)duration 170 | { 171 | NSInteger dMin = duration / 60; 172 | NSInteger dSec = (NSInteger)duration % 60; 173 | 174 | NSInteger cMin = currentTime / 60; 175 | NSInteger cSec = (NSInteger)currentTime % 60; 176 | 177 | NSString *durationString = [NSString stringWithFormat:@"%02ld:%02ld", dMin, dSec]; 178 | NSString *currentString = [NSString stringWithFormat:@"%02ld:%02ld", cMin, cSec]; 179 | 180 | return [NSString stringWithFormat:@"%@/%@", currentString, durationString]; 181 | } 182 | 183 | @end 184 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/VideoPlayView.m: -------------------------------------------------------------------------------- 1 | // 2 | // VideoPlayView.m 3 | // YG_MediaView 4 | // 5 | // Created by apple on 16/6/06. 6 | // Copyright (c) 2016年 yg_Code. All rights reserved. 7 | // 8 | 9 | #import "VideoPlayView.h" 10 | #define KYGThunderPlayerBundle [NSBundle bundleForClass:[self class]] 11 | 12 | @interface VideoPlayView() 13 | 14 | /* 播放器 */ 15 | @property (nonatomic, strong) AVPlayer *player; 16 | 17 | // 播放器的Layer 18 | @property (weak, nonatomic) AVPlayerLayer *playerLayer; 19 | 20 | @property (weak, nonatomic) IBOutlet UIImageView *imageView; 21 | @property (weak, nonatomic) IBOutlet UIView *toolView; 22 | @property (weak, nonatomic) IBOutlet UIButton *playOrPauseBtn; 23 | @property (weak, nonatomic) IBOutlet UISlider *progressSlider; 24 | @property (weak, nonatomic) IBOutlet UILabel *timeLabel; 25 | 26 | // 记录当前是否显示了工具栏 27 | @property (assign, nonatomic) BOOL isShowToolView; 28 | 29 | /* 定时器 */ 30 | @property (nonatomic, strong) NSTimer *progressTimer; 31 | 32 | #pragma mark - 监听事件的处理 33 | - (IBAction)playOrPause:(UIButton *)sender; 34 | - (IBAction)switchOrientation:(UIButton *)sender; 35 | - (IBAction)slider; 36 | - (IBAction)startSlider; 37 | - (IBAction)tapAction:(UITapGestureRecognizer *)sender; 38 | - (IBAction)sliderValueChange; 39 | 40 | @end 41 | 42 | @implementation VideoPlayView 43 | 44 | // 快速创建View的方法 45 | + (instancetype)videoPlayView 46 | { 47 | // return [[[NSBundle mainBundle] loadNibNamed:@"VideoPlayView" owner:nil options:nil] firstObject]; 48 | return [[KYGThunderPlayerBundle loadNibNamed:@"VideoPlayView" owner:self options:nil] firstObject]; 49 | } 50 | 51 | - (void)awakeFromNib 52 | { 53 | self.player = [[AVPlayer alloc] init]; 54 | self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player]; 55 | [self.imageView.layer addSublayer:self.playerLayer]; 56 | 57 | self.toolView.alpha = 0; 58 | self.isShowToolView = NO; 59 | 60 | [self.progressSlider setThumbImage:[UIImage imageNamed:@"thumbImage"] forState:UIControlStateNormal]; 61 | [self.progressSlider setMaximumTrackImage:[UIImage imageNamed:@"MaximumTrackImage"] forState:UIControlStateNormal]; 62 | [self.progressSlider setMinimumTrackImage:[UIImage imageNamed:@"MinimumTrackImage"] forState:UIControlStateNormal]; 63 | 64 | [self removeProgressTimer]; 65 | [self addProgressTimer]; 66 | 67 | self.playOrPauseBtn.selected = YES; 68 | } 69 | 70 | - (void)layoutSubviews 71 | { 72 | [super layoutSubviews]; 73 | 74 | self.playerLayer.frame = self.bounds; 75 | } 76 | 77 | #pragma mark - 设置播放的视频 78 | - (void)setPlayerItem:(AVPlayerItem *)playerItem 79 | { 80 | _playerItem = playerItem; 81 | [self.player replaceCurrentItemWithPlayerItem:playerItem]; 82 | [self.player play]; 83 | } 84 | 85 | // 是否显示工具的View 86 | - (IBAction)tapAction:(UITapGestureRecognizer *)sender { 87 | [UIView animateWithDuration:0.5 animations:^{ 88 | if (self.isShowToolView) { 89 | self.toolView.alpha = 0; 90 | self.isShowToolView = NO; 91 | } else { 92 | self.toolView.alpha = 1; 93 | self.isShowToolView = YES; 94 | } 95 | }]; 96 | } 97 | // 暂停按钮的监听 98 | - (IBAction)playOrPause:(UIButton *)sender { 99 | sender.selected = !sender.selected; 100 | if (sender.selected) { 101 | [self.player play]; 102 | 103 | [self addProgressTimer]; 104 | } else { 105 | [self.player pause]; 106 | 107 | [self removeProgressTimer]; 108 | } 109 | } 110 | 111 | #pragma mark - 定时器操作 112 | - (void)addProgressTimer 113 | { 114 | self.progressTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateProgressInfo) userInfo:nil repeats:YES]; 115 | [[NSRunLoop mainRunLoop] addTimer:self.progressTimer forMode:NSRunLoopCommonModes]; 116 | } 117 | 118 | - (void)removeProgressTimer 119 | { 120 | [self.progressTimer invalidate]; 121 | self.progressTimer = nil; 122 | } 123 | 124 | - (void)updateProgressInfo 125 | { 126 | // 1.更新时间 127 | self.timeLabel.text = [self timeString]; 128 | 129 | // 2.设置进度条的value 130 | self.progressSlider.value = CMTimeGetSeconds(self.player.currentTime) / CMTimeGetSeconds(self.player.currentItem.duration); 131 | } 132 | 133 | - (NSString *)timeString 134 | { 135 | NSTimeInterval duration = CMTimeGetSeconds(self.player.currentItem.duration); 136 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentTime); 137 | 138 | return [self stringWithCurrentTime:currentTime duration:duration]; 139 | } 140 | 141 | // 切换屏幕的方向 142 | - (IBAction)switchOrientation:(UIButton *)sender { 143 | sender.selected = !sender.selected; 144 | if ([self.delegate respondsToSelector:@selector(videoplayViewSwitchOrientation:)]) { 145 | [self.delegate videoplayViewSwitchOrientation:sender.selected]; 146 | } 147 | } 148 | 149 | - (IBAction)slider { 150 | [self addProgressTimer]; 151 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentItem.duration) * self.progressSlider.value; 152 | 153 | // 设置当前播放时间 154 | [self.player seekToTime:CMTimeMakeWithSeconds(currentTime, NSEC_PER_SEC) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero]; 155 | 156 | [self.player play]; 157 | } 158 | 159 | - (IBAction)startSlider { 160 | [self removeProgressTimer]; 161 | } 162 | 163 | - (IBAction)sliderValueChange { 164 | NSTimeInterval currentTime = CMTimeGetSeconds(self.player.currentItem.duration) * self.progressSlider.value; 165 | NSTimeInterval duration = CMTimeGetSeconds(self.player.currentItem.duration); 166 | self.timeLabel.text = [self stringWithCurrentTime:currentTime duration:duration]; 167 | } 168 | 169 | - (NSString *)stringWithCurrentTime:(NSTimeInterval)currentTime duration:(NSTimeInterval)duration 170 | { 171 | NSInteger dMin = duration / 60; 172 | NSInteger dSec = (NSInteger)duration % 60; 173 | 174 | NSInteger cMin = currentTime / 60; 175 | NSInteger cSec = (NSInteger)currentTime % 60; 176 | 177 | NSString *durationString = [NSString stringWithFormat:@"%02ld:%02ld", dMin, dSec]; 178 | NSString *currentString = [NSString stringWithFormat:@"%02ld:%02ld", cMin, cSec]; 179 | 180 | return [NSString stringWithFormat:@"%@/%@", currentString, durationString]; 181 | } 182 | 183 | @end 184 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | if [[ "$CONFIGURATION" == "Debug" ]]; then 83 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/bg_media_default@3x.png" 84 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png" 85 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png" 86 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png" 87 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png" 88 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@2x.png" 89 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@3x.png" 90 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/MaximumTrackImage@2x.png" 91 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/MinimumTrackImage@2x.png" 92 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png" 93 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png" 94 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/thumbImage@2x.png" 95 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/VideoPlayView.xib" 96 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle" 97 | fi 98 | if [[ "$CONFIGURATION" == "Release" ]]; then 99 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/bg_media_default@3x.png" 100 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png" 101 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png" 102 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png" 103 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png" 104 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@2x.png" 105 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/full_play_btn_hl@3x.png" 106 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/MaximumTrackImage@2x.png" 107 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/MinimumTrackImage@2x.png" 108 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png" 109 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png" 110 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/thumbImage@2x.png" 111 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/VideoPlayView.xib" 112 | install_resource "YG_ThunderPlayer/YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle" 113 | fi 114 | 115 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 116 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 117 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 118 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 119 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 120 | fi 121 | rm -f "$RESOURCES_TO_COPY" 122 | 123 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 124 | then 125 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 126 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 127 | while read line; do 128 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 129 | XCASSET_FILES+=("$line") 130 | fi 131 | done <<<"$OTHER_XCASSETS" 132 | 133 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 134 | fi 135 | -------------------------------------------------------------------------------- /YG_ThunderPlayer/resource/VideoPlayView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 36 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/YG_ThunderPlayer/YG_ThunderPlayer/resource/VideoPlayView.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 36 | 48 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/yg_mediaDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 889A02A8E1E1993AFC27174C /* libPods-yg_mediaDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F64D28760AC365924F394C0E /* libPods-yg_mediaDemo.a */; }; 11 | DEA9B5D31D1A606F00BDF4EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA9B5D21D1A606F00BDF4EE /* main.m */; }; 12 | DEA9B5D61D1A606F00BDF4EE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA9B5D51D1A606F00BDF4EE /* AppDelegate.m */; }; 13 | DEA9B5D91D1A606F00BDF4EE /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA9B5D81D1A606F00BDF4EE /* ViewController.m */; }; 14 | DEA9B5DC1D1A606F00BDF4EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEA9B5DA1D1A606F00BDF4EE /* Main.storyboard */; }; 15 | DEA9B5DE1D1A606F00BDF4EE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DEA9B5DD1D1A606F00BDF4EE /* Assets.xcassets */; }; 16 | DEA9B5E11D1A606F00BDF4EE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEA9B5DF1D1A606F00BDF4EE /* LaunchScreen.storyboard */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXFileReference section */ 20 | 0F0BB2D5CC3B968609541C57 /* Pods-yg_mediaDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-yg_mediaDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo.debug.xcconfig"; sourceTree = ""; }; 21 | D76D968793A3DDB6A5D3C1F0 /* Pods-yg_mediaDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-yg_mediaDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo.release.xcconfig"; sourceTree = ""; }; 22 | DEA9B5CE1D1A606F00BDF4EE /* yg_mediaDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = yg_mediaDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 23 | DEA9B5D21D1A606F00BDF4EE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 24 | DEA9B5D41D1A606F00BDF4EE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 25 | DEA9B5D51D1A606F00BDF4EE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 26 | DEA9B5D71D1A606F00BDF4EE /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 27 | DEA9B5D81D1A606F00BDF4EE /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 28 | DEA9B5DB1D1A606F00BDF4EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 29 | DEA9B5DD1D1A606F00BDF4EE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 30 | DEA9B5E01D1A606F00BDF4EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 31 | DEA9B5E21D1A606F00BDF4EE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 32 | F64D28760AC365924F394C0E /* libPods-yg_mediaDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-yg_mediaDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 33 | /* End PBXFileReference section */ 34 | 35 | /* Begin PBXFrameworksBuildPhase section */ 36 | DEA9B5CB1D1A606F00BDF4EE /* Frameworks */ = { 37 | isa = PBXFrameworksBuildPhase; 38 | buildActionMask = 2147483647; 39 | files = ( 40 | 889A02A8E1E1993AFC27174C /* libPods-yg_mediaDemo.a in Frameworks */, 41 | ); 42 | runOnlyForDeploymentPostprocessing = 0; 43 | }; 44 | /* End PBXFrameworksBuildPhase section */ 45 | 46 | /* Begin PBXGroup section */ 47 | 6D5780B1A46148671EE13C11 /* Frameworks */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | F64D28760AC365924F394C0E /* libPods-yg_mediaDemo.a */, 51 | ); 52 | name = Frameworks; 53 | sourceTree = ""; 54 | }; 55 | A7B92BDDC104F0F2A7EB17CE /* Pods */ = { 56 | isa = PBXGroup; 57 | children = ( 58 | 0F0BB2D5CC3B968609541C57 /* Pods-yg_mediaDemo.debug.xcconfig */, 59 | D76D968793A3DDB6A5D3C1F0 /* Pods-yg_mediaDemo.release.xcconfig */, 60 | ); 61 | name = Pods; 62 | sourceTree = ""; 63 | }; 64 | DEA9B5C51D1A606F00BDF4EE = { 65 | isa = PBXGroup; 66 | children = ( 67 | DEA9B5D01D1A606F00BDF4EE /* yg_mediaDemo */, 68 | DEA9B5CF1D1A606F00BDF4EE /* Products */, 69 | A7B92BDDC104F0F2A7EB17CE /* Pods */, 70 | 6D5780B1A46148671EE13C11 /* Frameworks */, 71 | ); 72 | sourceTree = ""; 73 | }; 74 | DEA9B5CF1D1A606F00BDF4EE /* Products */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | DEA9B5CE1D1A606F00BDF4EE /* yg_mediaDemo.app */, 78 | ); 79 | name = Products; 80 | sourceTree = ""; 81 | }; 82 | DEA9B5D01D1A606F00BDF4EE /* yg_mediaDemo */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | DEA9B5D41D1A606F00BDF4EE /* AppDelegate.h */, 86 | DEA9B5D51D1A606F00BDF4EE /* AppDelegate.m */, 87 | DEA9B5D71D1A606F00BDF4EE /* ViewController.h */, 88 | DEA9B5D81D1A606F00BDF4EE /* ViewController.m */, 89 | DEA9B5DA1D1A606F00BDF4EE /* Main.storyboard */, 90 | DEA9B5DD1D1A606F00BDF4EE /* Assets.xcassets */, 91 | DEA9B5DF1D1A606F00BDF4EE /* LaunchScreen.storyboard */, 92 | DEA9B5E21D1A606F00BDF4EE /* Info.plist */, 93 | DEA9B5D11D1A606F00BDF4EE /* Supporting Files */, 94 | ); 95 | path = yg_mediaDemo; 96 | sourceTree = ""; 97 | }; 98 | DEA9B5D11D1A606F00BDF4EE /* Supporting Files */ = { 99 | isa = PBXGroup; 100 | children = ( 101 | DEA9B5D21D1A606F00BDF4EE /* main.m */, 102 | ); 103 | name = "Supporting Files"; 104 | sourceTree = ""; 105 | }; 106 | /* End PBXGroup section */ 107 | 108 | /* Begin PBXNativeTarget section */ 109 | DEA9B5CD1D1A606F00BDF4EE /* yg_mediaDemo */ = { 110 | isa = PBXNativeTarget; 111 | buildConfigurationList = DEA9B5E51D1A606F00BDF4EE /* Build configuration list for PBXNativeTarget "yg_mediaDemo" */; 112 | buildPhases = ( 113 | 3763959C0F1EE0F9D50E3669 /* [CP] Check Pods Manifest.lock */, 114 | DEA9B5CA1D1A606F00BDF4EE /* Sources */, 115 | DEA9B5CB1D1A606F00BDF4EE /* Frameworks */, 116 | DEA9B5CC1D1A606F00BDF4EE /* Resources */, 117 | 4747442424EB18D09794B086 /* [CP] Embed Pods Frameworks */, 118 | 12B2786DFF3F26F7A173E8FA /* [CP] Copy Pods Resources */, 119 | ); 120 | buildRules = ( 121 | ); 122 | dependencies = ( 123 | ); 124 | name = yg_mediaDemo; 125 | productName = yg_mediaDemo; 126 | productReference = DEA9B5CE1D1A606F00BDF4EE /* yg_mediaDemo.app */; 127 | productType = "com.apple.product-type.application"; 128 | }; 129 | /* End PBXNativeTarget section */ 130 | 131 | /* Begin PBXProject section */ 132 | DEA9B5C61D1A606F00BDF4EE /* Project object */ = { 133 | isa = PBXProject; 134 | attributes = { 135 | LastUpgradeCheck = 0720; 136 | ORGANIZATIONNAME = yg_self; 137 | TargetAttributes = { 138 | DEA9B5CD1D1A606F00BDF4EE = { 139 | CreatedOnToolsVersion = 7.2; 140 | DevelopmentTeam = 2W9D5N3UV9; 141 | }; 142 | }; 143 | }; 144 | buildConfigurationList = DEA9B5C91D1A606F00BDF4EE /* Build configuration list for PBXProject "yg_mediaDemo" */; 145 | compatibilityVersion = "Xcode 3.2"; 146 | developmentRegion = English; 147 | hasScannedForEncodings = 0; 148 | knownRegions = ( 149 | en, 150 | Base, 151 | ); 152 | mainGroup = DEA9B5C51D1A606F00BDF4EE; 153 | productRefGroup = DEA9B5CF1D1A606F00BDF4EE /* Products */; 154 | projectDirPath = ""; 155 | projectRoot = ""; 156 | targets = ( 157 | DEA9B5CD1D1A606F00BDF4EE /* yg_mediaDemo */, 158 | ); 159 | }; 160 | /* End PBXProject section */ 161 | 162 | /* Begin PBXResourcesBuildPhase section */ 163 | DEA9B5CC1D1A606F00BDF4EE /* Resources */ = { 164 | isa = PBXResourcesBuildPhase; 165 | buildActionMask = 2147483647; 166 | files = ( 167 | DEA9B5E11D1A606F00BDF4EE /* LaunchScreen.storyboard in Resources */, 168 | DEA9B5DE1D1A606F00BDF4EE /* Assets.xcassets in Resources */, 169 | DEA9B5DC1D1A606F00BDF4EE /* Main.storyboard in Resources */, 170 | ); 171 | runOnlyForDeploymentPostprocessing = 0; 172 | }; 173 | /* End PBXResourcesBuildPhase section */ 174 | 175 | /* Begin PBXShellScriptBuildPhase section */ 176 | 12B2786DFF3F26F7A173E8FA /* [CP] Copy Pods Resources */ = { 177 | isa = PBXShellScriptBuildPhase; 178 | buildActionMask = 2147483647; 179 | files = ( 180 | ); 181 | inputPaths = ( 182 | ); 183 | name = "[CP] Copy Pods Resources"; 184 | outputPaths = ( 185 | ); 186 | runOnlyForDeploymentPostprocessing = 0; 187 | shellPath = /bin/sh; 188 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-resources.sh\"\n"; 189 | showEnvVarsInLog = 0; 190 | }; 191 | 3763959C0F1EE0F9D50E3669 /* [CP] Check Pods Manifest.lock */ = { 192 | isa = PBXShellScriptBuildPhase; 193 | buildActionMask = 2147483647; 194 | files = ( 195 | ); 196 | inputPaths = ( 197 | ); 198 | name = "[CP] Check Pods Manifest.lock"; 199 | outputPaths = ( 200 | ); 201 | runOnlyForDeploymentPostprocessing = 0; 202 | shellPath = /bin/sh; 203 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 204 | showEnvVarsInLog = 0; 205 | }; 206 | 4747442424EB18D09794B086 /* [CP] Embed Pods Frameworks */ = { 207 | isa = PBXShellScriptBuildPhase; 208 | buildActionMask = 2147483647; 209 | files = ( 210 | ); 211 | inputPaths = ( 212 | ); 213 | name = "[CP] Embed Pods Frameworks"; 214 | outputPaths = ( 215 | ); 216 | runOnlyForDeploymentPostprocessing = 0; 217 | shellPath = /bin/sh; 218 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-yg_mediaDemo/Pods-yg_mediaDemo-frameworks.sh\"\n"; 219 | showEnvVarsInLog = 0; 220 | }; 221 | /* End PBXShellScriptBuildPhase section */ 222 | 223 | /* Begin PBXSourcesBuildPhase section */ 224 | DEA9B5CA1D1A606F00BDF4EE /* Sources */ = { 225 | isa = PBXSourcesBuildPhase; 226 | buildActionMask = 2147483647; 227 | files = ( 228 | DEA9B5D91D1A606F00BDF4EE /* ViewController.m in Sources */, 229 | DEA9B5D61D1A606F00BDF4EE /* AppDelegate.m in Sources */, 230 | DEA9B5D31D1A606F00BDF4EE /* main.m in Sources */, 231 | ); 232 | runOnlyForDeploymentPostprocessing = 0; 233 | }; 234 | /* End PBXSourcesBuildPhase section */ 235 | 236 | /* Begin PBXVariantGroup section */ 237 | DEA9B5DA1D1A606F00BDF4EE /* Main.storyboard */ = { 238 | isa = PBXVariantGroup; 239 | children = ( 240 | DEA9B5DB1D1A606F00BDF4EE /* Base */, 241 | ); 242 | name = Main.storyboard; 243 | sourceTree = ""; 244 | }; 245 | DEA9B5DF1D1A606F00BDF4EE /* LaunchScreen.storyboard */ = { 246 | isa = PBXVariantGroup; 247 | children = ( 248 | DEA9B5E01D1A606F00BDF4EE /* Base */, 249 | ); 250 | name = LaunchScreen.storyboard; 251 | sourceTree = ""; 252 | }; 253 | /* End PBXVariantGroup section */ 254 | 255 | /* Begin XCBuildConfiguration section */ 256 | DEA9B5E31D1A606F00BDF4EE /* Debug */ = { 257 | isa = XCBuildConfiguration; 258 | buildSettings = { 259 | ALWAYS_SEARCH_USER_PATHS = NO; 260 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 261 | CLANG_CXX_LIBRARY = "libc++"; 262 | CLANG_ENABLE_MODULES = YES; 263 | CLANG_ENABLE_OBJC_ARC = YES; 264 | CLANG_WARN_BOOL_CONVERSION = YES; 265 | CLANG_WARN_CONSTANT_CONVERSION = YES; 266 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 267 | CLANG_WARN_EMPTY_BODY = YES; 268 | CLANG_WARN_ENUM_CONVERSION = YES; 269 | CLANG_WARN_INT_CONVERSION = YES; 270 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 271 | CLANG_WARN_UNREACHABLE_CODE = YES; 272 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 273 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 274 | COPY_PHASE_STRIP = NO; 275 | DEBUG_INFORMATION_FORMAT = dwarf; 276 | ENABLE_STRICT_OBJC_MSGSEND = YES; 277 | ENABLE_TESTABILITY = YES; 278 | GCC_C_LANGUAGE_STANDARD = gnu99; 279 | GCC_DYNAMIC_NO_PIC = NO; 280 | GCC_NO_COMMON_BLOCKS = YES; 281 | GCC_OPTIMIZATION_LEVEL = 0; 282 | GCC_PREPROCESSOR_DEFINITIONS = ( 283 | "DEBUG=1", 284 | "$(inherited)", 285 | ); 286 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 287 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 288 | GCC_WARN_UNDECLARED_SELECTOR = YES; 289 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 290 | GCC_WARN_UNUSED_FUNCTION = YES; 291 | GCC_WARN_UNUSED_VARIABLE = YES; 292 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 293 | MTL_ENABLE_DEBUG_INFO = YES; 294 | ONLY_ACTIVE_ARCH = YES; 295 | SDKROOT = iphoneos; 296 | }; 297 | name = Debug; 298 | }; 299 | DEA9B5E41D1A606F00BDF4EE /* Release */ = { 300 | isa = XCBuildConfiguration; 301 | buildSettings = { 302 | ALWAYS_SEARCH_USER_PATHS = NO; 303 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 304 | CLANG_CXX_LIBRARY = "libc++"; 305 | CLANG_ENABLE_MODULES = YES; 306 | CLANG_ENABLE_OBJC_ARC = YES; 307 | CLANG_WARN_BOOL_CONVERSION = YES; 308 | CLANG_WARN_CONSTANT_CONVERSION = YES; 309 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 310 | CLANG_WARN_EMPTY_BODY = YES; 311 | CLANG_WARN_ENUM_CONVERSION = YES; 312 | CLANG_WARN_INT_CONVERSION = YES; 313 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 314 | CLANG_WARN_UNREACHABLE_CODE = YES; 315 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 316 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 317 | COPY_PHASE_STRIP = NO; 318 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 319 | ENABLE_NS_ASSERTIONS = NO; 320 | ENABLE_STRICT_OBJC_MSGSEND = YES; 321 | GCC_C_LANGUAGE_STANDARD = gnu99; 322 | GCC_NO_COMMON_BLOCKS = YES; 323 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 324 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 325 | GCC_WARN_UNDECLARED_SELECTOR = YES; 326 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 327 | GCC_WARN_UNUSED_FUNCTION = YES; 328 | GCC_WARN_UNUSED_VARIABLE = YES; 329 | IPHONEOS_DEPLOYMENT_TARGET = 9.2; 330 | MTL_ENABLE_DEBUG_INFO = NO; 331 | SDKROOT = iphoneos; 332 | VALIDATE_PRODUCT = YES; 333 | }; 334 | name = Release; 335 | }; 336 | DEA9B5E61D1A606F00BDF4EE /* Debug */ = { 337 | isa = XCBuildConfiguration; 338 | baseConfigurationReference = 0F0BB2D5CC3B968609541C57 /* Pods-yg_mediaDemo.debug.xcconfig */; 339 | buildSettings = { 340 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 341 | INFOPLIST_FILE = yg_mediaDemo/Info.plist; 342 | IPHONEOS_DEPLOYMENT_TARGET = 8.2; 343 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 344 | PRODUCT_BUNDLE_IDENTIFIER = "cn.ygCode.yg-mediaDemo"; 345 | PRODUCT_NAME = "$(TARGET_NAME)"; 346 | }; 347 | name = Debug; 348 | }; 349 | DEA9B5E71D1A606F00BDF4EE /* Release */ = { 350 | isa = XCBuildConfiguration; 351 | baseConfigurationReference = D76D968793A3DDB6A5D3C1F0 /* Pods-yg_mediaDemo.release.xcconfig */; 352 | buildSettings = { 353 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 354 | INFOPLIST_FILE = yg_mediaDemo/Info.plist; 355 | IPHONEOS_DEPLOYMENT_TARGET = 8.2; 356 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 357 | PRODUCT_BUNDLE_IDENTIFIER = "cn.ygCode.yg-mediaDemo"; 358 | PRODUCT_NAME = "$(TARGET_NAME)"; 359 | }; 360 | name = Release; 361 | }; 362 | /* End XCBuildConfiguration section */ 363 | 364 | /* Begin XCConfigurationList section */ 365 | DEA9B5C91D1A606F00BDF4EE /* Build configuration list for PBXProject "yg_mediaDemo" */ = { 366 | isa = XCConfigurationList; 367 | buildConfigurations = ( 368 | DEA9B5E31D1A606F00BDF4EE /* Debug */, 369 | DEA9B5E41D1A606F00BDF4EE /* Release */, 370 | ); 371 | defaultConfigurationIsVisible = 0; 372 | defaultConfigurationName = Release; 373 | }; 374 | DEA9B5E51D1A606F00BDF4EE /* Build configuration list for PBXNativeTarget "yg_mediaDemo" */ = { 375 | isa = XCConfigurationList; 376 | buildConfigurations = ( 377 | DEA9B5E61D1A606F00BDF4EE /* Debug */, 378 | DEA9B5E71D1A606F00BDF4EE /* Release */, 379 | ); 380 | defaultConfigurationIsVisible = 0; 381 | defaultConfigurationName = Release; 382 | }; 383 | /* End XCConfigurationList section */ 384 | }; 385 | rootObject = DEA9B5C61D1A606F00BDF4EE /* Project object */; 386 | } 387 | -------------------------------------------------------------------------------- /Demo/yg_mediaDemo/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 0998E8AFCB4A0853AB7856D92E1E410D /* VideoPlayView.h in Headers */ = {isa = PBXBuildFile; fileRef = E7BC4ABE0CFE059B78A0BC30DDDE64E5 /* VideoPlayView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11 | 14C65E03947C724A462670A0CE9593E9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5422916563B77A748D40B022EAE1747C /* Foundation.framework */; }; 12 | 23F02D23316334CBB9DD44524E959D94 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5422916563B77A748D40B022EAE1747C /* Foundation.framework */; }; 13 | 2F1055F4138BB285A92ED4F3B24D07A4 /* YG_MeidaView.h in Headers */ = {isa = PBXBuildFile; fileRef = 755A211318B83EED06C2BB6BABF620F9 /* YG_MeidaView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14 | 5A7B329C9729289E48D5E14E16949947 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ADFC5A4B2BBCFD9A27B7A059658E773 /* AVFoundation.framework */; }; 15 | 6887A30C78BD415A4D1D6752A32C0077 /* FullViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 057E031F70ADCB613B2502F9002380A6 /* FullViewController.m */; }; 16 | A5BC7A0B009290A56563B7FAF894FFD8 /* YG_ThunderPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6862B0854AC9102022A6955870804B91 /* YG_ThunderPlayer-dummy.m */; }; 17 | A74B63FE041E1F1EA01B2A67E532E0BE /* VideoPlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 65038429EE0F622BE5658FD7AC37743A /* VideoPlayView.m */; }; 18 | C4D3701ED3AC68CC8B839EE6E70E1144 /* FullViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = BEEE2018102724D42579B4910E26BC8B /* FullViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 19 | CFBFF220798DA94198032FF0DD8B0ECD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A41C04F9FB06B54E2A413E29A588B49 /* UIKit.framework */; }; 20 | F6ED6232F05E3CE3711C1CD27A1E8114 /* Pods-yg_mediaDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A02ACDD607B216406B11772408A6064 /* Pods-yg_mediaDemo-dummy.m */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 94DB71525A611A1D33398FAF55CFBA96 /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = BF95E16F2325E80552D8E5E206F9E4C6; 29 | remoteInfo = YG_ThunderPlayer; 30 | }; 31 | /* End PBXContainerItemProxy section */ 32 | 33 | /* Begin PBXFileReference section */ 34 | 057E031F70ADCB613B2502F9002380A6 /* FullViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FullViewController.m; path = YG_ThunderPlayer/FullViewController.m; sourceTree = ""; }; 35 | 0DB1F98F4EAFEF07F8F1FAA6772767C2 /* full_play_btn_hl@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_play_btn_hl@3x.png"; path = "YG_ThunderPlayer/resource/full_play_btn_hl@3x.png"; sourceTree = ""; }; 36 | 1B48F2002ACC8C0AC6FAA1EE52ED695A /* Pods-yg_mediaDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-yg_mediaDemo-frameworks.sh"; sourceTree = ""; }; 37 | 20CA9C4D034EEC26D53FA90175FDFC99 /* libPods-yg_mediaDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-yg_mediaDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | 2A02ACDD607B216406B11772408A6064 /* Pods-yg_mediaDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-yg_mediaDemo-dummy.m"; sourceTree = ""; }; 39 | 2E478075AE605F24BF15BBC8E8ECA2FF /* YG_ThunderPlayer.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = YG_ThunderPlayer.bundle; path = YG_ThunderPlayer/resource/YG_ThunderPlayer.bundle; sourceTree = ""; }; 40 | 2F169C123A2A552EB77A7E32F524F8F5 /* mini_launchFullScreen_btn_hl@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "mini_launchFullScreen_btn_hl@3x.png"; path = "YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@3x.png"; sourceTree = ""; }; 41 | 391C181EC4671CCD68C0CA14872A7933 /* Pods-yg_mediaDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-yg_mediaDemo-acknowledgements.markdown"; sourceTree = ""; }; 42 | 3A41C04F9FB06B54E2A413E29A588B49 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 43 | 4F681CFA79A293D50AB5CA7B9628E459 /* YG_ThunderPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YG_ThunderPlayer-prefix.pch"; sourceTree = ""; }; 44 | 5422916563B77A748D40B022EAE1747C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 45 | 5851AF74252D76BA1AF6EC22B846C442 /* libYG_ThunderPlayer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libYG_ThunderPlayer.a; sourceTree = BUILT_PRODUCTS_DIR; }; 46 | 5E960B02B831B5158AA7E1F0AFE93CBD /* VideoPlayView.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = VideoPlayView.xib; path = YG_ThunderPlayer/resource/VideoPlayView.xib; sourceTree = ""; }; 47 | 6142F71DE1D9E79E2F92C7F24DEC5996 /* full_minimize_btn_hl@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_minimize_btn_hl@3x.png"; path = "YG_ThunderPlayer/resource/full_minimize_btn_hl@3x.png"; sourceTree = ""; }; 48 | 65038429EE0F622BE5658FD7AC37743A /* VideoPlayView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = VideoPlayView.m; path = YG_ThunderPlayer/VideoPlayView.m; sourceTree = ""; }; 49 | 6862B0854AC9102022A6955870804B91 /* YG_ThunderPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YG_ThunderPlayer-dummy.m"; sourceTree = ""; }; 50 | 6B3A30312CC9712CF6E4161918B0A505 /* thumbImage@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "thumbImage@2x.png"; path = "YG_ThunderPlayer/resource/thumbImage@2x.png"; sourceTree = ""; }; 51 | 755A211318B83EED06C2BB6BABF620F9 /* YG_MeidaView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YG_MeidaView.h; path = YG_ThunderPlayer/YG_MeidaView.h; sourceTree = ""; }; 52 | 7DC409972A2A411485D3135B07EC46D7 /* Pods-yg_mediaDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-yg_mediaDemo-acknowledgements.plist"; sourceTree = ""; }; 53 | 7EA538DCF69BB2C9D0E7549640F68099 /* Pods-yg_mediaDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-yg_mediaDemo.release.xcconfig"; sourceTree = ""; }; 54 | 8175373E3CB8A4AF4A6D244B677DFA1B /* MaximumTrackImage@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "MaximumTrackImage@2x.png"; path = "YG_ThunderPlayer/resource/MaximumTrackImage@2x.png"; sourceTree = ""; }; 55 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 56 | 9ADFC5A4B2BBCFD9A27B7A059658E773 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; }; 57 | A9825FC037A18819DD04F7B10504E322 /* full_pause_btn_hl@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_pause_btn_hl@3x.png"; path = "YG_ThunderPlayer/resource/full_pause_btn_hl@3x.png"; sourceTree = ""; }; 58 | BEEE2018102724D42579B4910E26BC8B /* FullViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FullViewController.h; path = YG_ThunderPlayer/FullViewController.h; sourceTree = ""; }; 59 | C39D336846F98ADDCFFA5231E119D527 /* YG_ThunderPlayer.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YG_ThunderPlayer.xcconfig; sourceTree = ""; }; 60 | C4CFE432D9941965AFEBD40D53B8F0C4 /* Pods-yg_mediaDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-yg_mediaDemo-resources.sh"; sourceTree = ""; }; 61 | D0C7ABAAFEFBB21D5E65F3204B991DD0 /* full_minimize_btn_hl@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_minimize_btn_hl@2x.png"; path = "YG_ThunderPlayer/resource/full_minimize_btn_hl@2x.png"; sourceTree = ""; }; 62 | E1C0AC40FF56581A7A4BDB22B5B81B95 /* bg_media_default@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "bg_media_default@3x.png"; path = "YG_ThunderPlayer/resource/bg_media_default@3x.png"; sourceTree = ""; }; 63 | E7BC4ABE0CFE059B78A0BC30DDDE64E5 /* VideoPlayView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = VideoPlayView.h; path = YG_ThunderPlayer/VideoPlayView.h; sourceTree = ""; }; 64 | F103F5C3D04AC889EDB01FB3772DBB55 /* MinimumTrackImage@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "MinimumTrackImage@2x.png"; path = "YG_ThunderPlayer/resource/MinimumTrackImage@2x.png"; sourceTree = ""; }; 65 | F9C38C3629E1DB1AAEED9DF96B017059 /* full_play_btn_hl@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_play_btn_hl@2x.png"; path = "YG_ThunderPlayer/resource/full_play_btn_hl@2x.png"; sourceTree = ""; }; 66 | FADC85A36647B00CFE2B5F1A0B924B28 /* full_pause_btn_hl@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "full_pause_btn_hl@2x.png"; path = "YG_ThunderPlayer/resource/full_pause_btn_hl@2x.png"; sourceTree = ""; }; 67 | FAE241D258FDB80C4996616D90430C36 /* Pods-yg_mediaDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-yg_mediaDemo.debug.xcconfig"; sourceTree = ""; }; 68 | FC065002BB922A6ABD69B36C3FCA7922 /* mini_launchFullScreen_btn_hl@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "mini_launchFullScreen_btn_hl@2x.png"; path = "YG_ThunderPlayer/resource/mini_launchFullScreen_btn_hl@2x.png"; sourceTree = ""; }; 69 | /* End PBXFileReference section */ 70 | 71 | /* Begin PBXFrameworksBuildPhase section */ 72 | A6F289C6D3EF7F3DF0A26095BD47A88D /* Frameworks */ = { 73 | isa = PBXFrameworksBuildPhase; 74 | buildActionMask = 2147483647; 75 | files = ( 76 | 5A7B329C9729289E48D5E14E16949947 /* AVFoundation.framework in Frameworks */, 77 | 14C65E03947C724A462670A0CE9593E9 /* Foundation.framework in Frameworks */, 78 | CFBFF220798DA94198032FF0DD8B0ECD /* UIKit.framework in Frameworks */, 79 | ); 80 | runOnlyForDeploymentPostprocessing = 0; 81 | }; 82 | EE700AFA949D33A08F04B8DB59362151 /* Frameworks */ = { 83 | isa = PBXFrameworksBuildPhase; 84 | buildActionMask = 2147483647; 85 | files = ( 86 | 23F02D23316334CBB9DD44524E959D94 /* Foundation.framework in Frameworks */, 87 | ); 88 | runOnlyForDeploymentPostprocessing = 0; 89 | }; 90 | /* End PBXFrameworksBuildPhase section */ 91 | 92 | /* Begin PBXGroup section */ 93 | 05591F2794FD09767385D9D245F05252 /* Products */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | 20CA9C4D034EEC26D53FA90175FDFC99 /* libPods-yg_mediaDemo.a */, 97 | 5851AF74252D76BA1AF6EC22B846C442 /* libYG_ThunderPlayer.a */, 98 | ); 99 | name = Products; 100 | sourceTree = ""; 101 | }; 102 | 122DA2E5084A4393C29BE363C764795C /* Frameworks */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | CA648648317C71E5A4DA455C8D2DBA8E /* iOS */, 106 | ); 107 | name = Frameworks; 108 | sourceTree = ""; 109 | }; 110 | 5BC35A44AA8BF79AD18B979FD0DBFBD7 /* Targets Support Files */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | A6285463E53D9D218053B93A7BCB0A6C /* Pods-yg_mediaDemo */, 114 | ); 115 | name = "Targets Support Files"; 116 | sourceTree = ""; 117 | }; 118 | 66AFEB2FDCEEE9F49E351DE599660506 /* YG_ThunderPlayer */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | BEEE2018102724D42579B4910E26BC8B /* FullViewController.h */, 122 | 057E031F70ADCB613B2502F9002380A6 /* FullViewController.m */, 123 | E7BC4ABE0CFE059B78A0BC30DDDE64E5 /* VideoPlayView.h */, 124 | 65038429EE0F622BE5658FD7AC37743A /* VideoPlayView.m */, 125 | 755A211318B83EED06C2BB6BABF620F9 /* YG_MeidaView.h */, 126 | 820ECC354480013153F28879CD9BB805 /* Resources */, 127 | 6C893EA24F70D36AC76A88631680086C /* Support Files */, 128 | ); 129 | path = YG_ThunderPlayer; 130 | sourceTree = ""; 131 | }; 132 | 6C893EA24F70D36AC76A88631680086C /* Support Files */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | C39D336846F98ADDCFFA5231E119D527 /* YG_ThunderPlayer.xcconfig */, 136 | 6862B0854AC9102022A6955870804B91 /* YG_ThunderPlayer-dummy.m */, 137 | 4F681CFA79A293D50AB5CA7B9628E459 /* YG_ThunderPlayer-prefix.pch */, 138 | ); 139 | name = "Support Files"; 140 | path = "../Target Support Files/YG_ThunderPlayer"; 141 | sourceTree = ""; 142 | }; 143 | 7DB346D0F39D3F0E887471402A8071AB = { 144 | isa = PBXGroup; 145 | children = ( 146 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 147 | 122DA2E5084A4393C29BE363C764795C /* Frameworks */, 148 | AA5F0BBF8BCC58B0F1858BE33EF74EC7 /* Pods */, 149 | 05591F2794FD09767385D9D245F05252 /* Products */, 150 | 5BC35A44AA8BF79AD18B979FD0DBFBD7 /* Targets Support Files */, 151 | ); 152 | sourceTree = ""; 153 | }; 154 | 820ECC354480013153F28879CD9BB805 /* Resources */ = { 155 | isa = PBXGroup; 156 | children = ( 157 | E1C0AC40FF56581A7A4BDB22B5B81B95 /* bg_media_default@3x.png */, 158 | D0C7ABAAFEFBB21D5E65F3204B991DD0 /* full_minimize_btn_hl@2x.png */, 159 | 6142F71DE1D9E79E2F92C7F24DEC5996 /* full_minimize_btn_hl@3x.png */, 160 | FADC85A36647B00CFE2B5F1A0B924B28 /* full_pause_btn_hl@2x.png */, 161 | A9825FC037A18819DD04F7B10504E322 /* full_pause_btn_hl@3x.png */, 162 | F9C38C3629E1DB1AAEED9DF96B017059 /* full_play_btn_hl@2x.png */, 163 | 0DB1F98F4EAFEF07F8F1FAA6772767C2 /* full_play_btn_hl@3x.png */, 164 | 8175373E3CB8A4AF4A6D244B677DFA1B /* MaximumTrackImage@2x.png */, 165 | FC065002BB922A6ABD69B36C3FCA7922 /* mini_launchFullScreen_btn_hl@2x.png */, 166 | 2F169C123A2A552EB77A7E32F524F8F5 /* mini_launchFullScreen_btn_hl@3x.png */, 167 | F103F5C3D04AC889EDB01FB3772DBB55 /* MinimumTrackImage@2x.png */, 168 | 6B3A30312CC9712CF6E4161918B0A505 /* thumbImage@2x.png */, 169 | 5E960B02B831B5158AA7E1F0AFE93CBD /* VideoPlayView.xib */, 170 | 2E478075AE605F24BF15BBC8E8ECA2FF /* YG_ThunderPlayer.bundle */, 171 | ); 172 | name = Resources; 173 | sourceTree = ""; 174 | }; 175 | A6285463E53D9D218053B93A7BCB0A6C /* Pods-yg_mediaDemo */ = { 176 | isa = PBXGroup; 177 | children = ( 178 | 391C181EC4671CCD68C0CA14872A7933 /* Pods-yg_mediaDemo-acknowledgements.markdown */, 179 | 7DC409972A2A411485D3135B07EC46D7 /* Pods-yg_mediaDemo-acknowledgements.plist */, 180 | 2A02ACDD607B216406B11772408A6064 /* Pods-yg_mediaDemo-dummy.m */, 181 | 1B48F2002ACC8C0AC6FAA1EE52ED695A /* Pods-yg_mediaDemo-frameworks.sh */, 182 | C4CFE432D9941965AFEBD40D53B8F0C4 /* Pods-yg_mediaDemo-resources.sh */, 183 | FAE241D258FDB80C4996616D90430C36 /* Pods-yg_mediaDemo.debug.xcconfig */, 184 | 7EA538DCF69BB2C9D0E7549640F68099 /* Pods-yg_mediaDemo.release.xcconfig */, 185 | ); 186 | name = "Pods-yg_mediaDemo"; 187 | path = "Target Support Files/Pods-yg_mediaDemo"; 188 | sourceTree = ""; 189 | }; 190 | AA5F0BBF8BCC58B0F1858BE33EF74EC7 /* Pods */ = { 191 | isa = PBXGroup; 192 | children = ( 193 | 66AFEB2FDCEEE9F49E351DE599660506 /* YG_ThunderPlayer */, 194 | ); 195 | name = Pods; 196 | sourceTree = ""; 197 | }; 198 | CA648648317C71E5A4DA455C8D2DBA8E /* iOS */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | 9ADFC5A4B2BBCFD9A27B7A059658E773 /* AVFoundation.framework */, 202 | 5422916563B77A748D40B022EAE1747C /* Foundation.framework */, 203 | 3A41C04F9FB06B54E2A413E29A588B49 /* UIKit.framework */, 204 | ); 205 | name = iOS; 206 | sourceTree = ""; 207 | }; 208 | /* End PBXGroup section */ 209 | 210 | /* Begin PBXHeadersBuildPhase section */ 211 | DAADF16AA669688E7CF23519A9E594F6 /* Headers */ = { 212 | isa = PBXHeadersBuildPhase; 213 | buildActionMask = 2147483647; 214 | files = ( 215 | C4D3701ED3AC68CC8B839EE6E70E1144 /* FullViewController.h in Headers */, 216 | 0998E8AFCB4A0853AB7856D92E1E410D /* VideoPlayView.h in Headers */, 217 | 2F1055F4138BB285A92ED4F3B24D07A4 /* YG_MeidaView.h in Headers */, 218 | ); 219 | runOnlyForDeploymentPostprocessing = 0; 220 | }; 221 | /* End PBXHeadersBuildPhase section */ 222 | 223 | /* Begin PBXNativeTarget section */ 224 | BF95E16F2325E80552D8E5E206F9E4C6 /* YG_ThunderPlayer */ = { 225 | isa = PBXNativeTarget; 226 | buildConfigurationList = 6D0FDA0DCA2B240BC107AC07C41DB267 /* Build configuration list for PBXNativeTarget "YG_ThunderPlayer" */; 227 | buildPhases = ( 228 | 71DB6FAB2FE965715CBB9050DC07C6F1 /* Sources */, 229 | A6F289C6D3EF7F3DF0A26095BD47A88D /* Frameworks */, 230 | DAADF16AA669688E7CF23519A9E594F6 /* Headers */, 231 | ); 232 | buildRules = ( 233 | ); 234 | dependencies = ( 235 | ); 236 | name = YG_ThunderPlayer; 237 | productName = YG_ThunderPlayer; 238 | productReference = 5851AF74252D76BA1AF6EC22B846C442 /* libYG_ThunderPlayer.a */; 239 | productType = "com.apple.product-type.library.static"; 240 | }; 241 | ED24B3709AAC377071D465704C8829D8 /* Pods-yg_mediaDemo */ = { 242 | isa = PBXNativeTarget; 243 | buildConfigurationList = DD1692EF50C8940AFEE4AD4EFB6AF9CB /* Build configuration list for PBXNativeTarget "Pods-yg_mediaDemo" */; 244 | buildPhases = ( 245 | 535F1F0FC0D4BBAB025541130030DC38 /* Sources */, 246 | EE700AFA949D33A08F04B8DB59362151 /* Frameworks */, 247 | ); 248 | buildRules = ( 249 | ); 250 | dependencies = ( 251 | 9411AE7A76FBF1FD0F20FF02DDBA6619 /* PBXTargetDependency */, 252 | ); 253 | name = "Pods-yg_mediaDemo"; 254 | productName = "Pods-yg_mediaDemo"; 255 | productReference = 20CA9C4D034EEC26D53FA90175FDFC99 /* libPods-yg_mediaDemo.a */; 256 | productType = "com.apple.product-type.library.static"; 257 | }; 258 | /* End PBXNativeTarget section */ 259 | 260 | /* Begin PBXProject section */ 261 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 262 | isa = PBXProject; 263 | attributes = { 264 | LastSwiftUpdateCheck = 0730; 265 | LastUpgradeCheck = 0700; 266 | }; 267 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 268 | compatibilityVersion = "Xcode 3.2"; 269 | developmentRegion = English; 270 | hasScannedForEncodings = 0; 271 | knownRegions = ( 272 | en, 273 | ); 274 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 275 | productRefGroup = 05591F2794FD09767385D9D245F05252 /* Products */; 276 | projectDirPath = ""; 277 | projectRoot = ""; 278 | targets = ( 279 | ED24B3709AAC377071D465704C8829D8 /* Pods-yg_mediaDemo */, 280 | BF95E16F2325E80552D8E5E206F9E4C6 /* YG_ThunderPlayer */, 281 | ); 282 | }; 283 | /* End PBXProject section */ 284 | 285 | /* Begin PBXSourcesBuildPhase section */ 286 | 535F1F0FC0D4BBAB025541130030DC38 /* Sources */ = { 287 | isa = PBXSourcesBuildPhase; 288 | buildActionMask = 2147483647; 289 | files = ( 290 | F6ED6232F05E3CE3711C1CD27A1E8114 /* Pods-yg_mediaDemo-dummy.m in Sources */, 291 | ); 292 | runOnlyForDeploymentPostprocessing = 0; 293 | }; 294 | 71DB6FAB2FE965715CBB9050DC07C6F1 /* Sources */ = { 295 | isa = PBXSourcesBuildPhase; 296 | buildActionMask = 2147483647; 297 | files = ( 298 | 6887A30C78BD415A4D1D6752A32C0077 /* FullViewController.m in Sources */, 299 | A74B63FE041E1F1EA01B2A67E532E0BE /* VideoPlayView.m in Sources */, 300 | A5BC7A0B009290A56563B7FAF894FFD8 /* YG_ThunderPlayer-dummy.m in Sources */, 301 | ); 302 | runOnlyForDeploymentPostprocessing = 0; 303 | }; 304 | /* End PBXSourcesBuildPhase section */ 305 | 306 | /* Begin PBXTargetDependency section */ 307 | 9411AE7A76FBF1FD0F20FF02DDBA6619 /* PBXTargetDependency */ = { 308 | isa = PBXTargetDependency; 309 | name = YG_ThunderPlayer; 310 | target = BF95E16F2325E80552D8E5E206F9E4C6 /* YG_ThunderPlayer */; 311 | targetProxy = 94DB71525A611A1D33398FAF55CFBA96 /* PBXContainerItemProxy */; 312 | }; 313 | /* End PBXTargetDependency section */ 314 | 315 | /* Begin XCBuildConfiguration section */ 316 | 12D03FC6F13A0088E27794D290E1CDD2 /* Release */ = { 317 | isa = XCBuildConfiguration; 318 | baseConfigurationReference = 7EA538DCF69BB2C9D0E7549640F68099 /* Pods-yg_mediaDemo.release.xcconfig */; 319 | buildSettings = { 320 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 321 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 322 | ENABLE_STRICT_OBJC_MSGSEND = YES; 323 | GCC_NO_COMMON_BLOCKS = YES; 324 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 325 | MACH_O_TYPE = staticlib; 326 | MTL_ENABLE_DEBUG_INFO = NO; 327 | OTHER_LDFLAGS = ""; 328 | OTHER_LIBTOOLFLAGS = ""; 329 | PODS_ROOT = "$(SRCROOT)"; 330 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 331 | PRODUCT_NAME = "$(TARGET_NAME)"; 332 | SDKROOT = iphoneos; 333 | SKIP_INSTALL = YES; 334 | }; 335 | name = Release; 336 | }; 337 | 39AE17B103BDACC488E2187B221C5FCE /* Debug */ = { 338 | isa = XCBuildConfiguration; 339 | baseConfigurationReference = FAE241D258FDB80C4996616D90430C36 /* Pods-yg_mediaDemo.debug.xcconfig */; 340 | buildSettings = { 341 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 342 | DEBUG_INFORMATION_FORMAT = dwarf; 343 | ENABLE_STRICT_OBJC_MSGSEND = YES; 344 | GCC_NO_COMMON_BLOCKS = YES; 345 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 346 | MACH_O_TYPE = staticlib; 347 | MTL_ENABLE_DEBUG_INFO = YES; 348 | OTHER_LDFLAGS = ""; 349 | OTHER_LIBTOOLFLAGS = ""; 350 | PODS_ROOT = "$(SRCROOT)"; 351 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 352 | PRODUCT_NAME = "$(TARGET_NAME)"; 353 | SDKROOT = iphoneos; 354 | SKIP_INSTALL = YES; 355 | }; 356 | name = Debug; 357 | }; 358 | 47BEF9D903506B003EA5C2B249729489 /* Debug */ = { 359 | isa = XCBuildConfiguration; 360 | buildSettings = { 361 | ALWAYS_SEARCH_USER_PATHS = NO; 362 | CLANG_ANALYZER_NONNULL = YES; 363 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 364 | CLANG_CXX_LIBRARY = "libc++"; 365 | CLANG_ENABLE_MODULES = YES; 366 | CLANG_ENABLE_OBJC_ARC = YES; 367 | CLANG_WARN_BOOL_CONVERSION = YES; 368 | CLANG_WARN_CONSTANT_CONVERSION = YES; 369 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 370 | CLANG_WARN_EMPTY_BODY = YES; 371 | CLANG_WARN_ENUM_CONVERSION = YES; 372 | CLANG_WARN_INT_CONVERSION = YES; 373 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 374 | CLANG_WARN_UNREACHABLE_CODE = YES; 375 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 376 | COPY_PHASE_STRIP = NO; 377 | ENABLE_TESTABILITY = YES; 378 | GCC_C_LANGUAGE_STANDARD = gnu99; 379 | GCC_DYNAMIC_NO_PIC = NO; 380 | GCC_OPTIMIZATION_LEVEL = 0; 381 | GCC_PREPROCESSOR_DEFINITIONS = ( 382 | "POD_CONFIGURATION_DEBUG=1", 383 | "DEBUG=1", 384 | "$(inherited)", 385 | ); 386 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 387 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 388 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 389 | GCC_WARN_UNDECLARED_SELECTOR = YES; 390 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 391 | GCC_WARN_UNUSED_FUNCTION = YES; 392 | GCC_WARN_UNUSED_VARIABLE = YES; 393 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 394 | ONLY_ACTIVE_ARCH = YES; 395 | STRIP_INSTALLED_PRODUCT = NO; 396 | SYMROOT = "${SRCROOT}/../build"; 397 | }; 398 | name = Debug; 399 | }; 400 | AAF678CED40D3499169D10F63CA0719E /* Release */ = { 401 | isa = XCBuildConfiguration; 402 | buildSettings = { 403 | ALWAYS_SEARCH_USER_PATHS = NO; 404 | CLANG_ANALYZER_NONNULL = YES; 405 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 406 | CLANG_CXX_LIBRARY = "libc++"; 407 | CLANG_ENABLE_MODULES = YES; 408 | CLANG_ENABLE_OBJC_ARC = YES; 409 | CLANG_WARN_BOOL_CONVERSION = YES; 410 | CLANG_WARN_CONSTANT_CONVERSION = YES; 411 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 412 | CLANG_WARN_EMPTY_BODY = YES; 413 | CLANG_WARN_ENUM_CONVERSION = YES; 414 | CLANG_WARN_INT_CONVERSION = YES; 415 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 416 | CLANG_WARN_UNREACHABLE_CODE = YES; 417 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 418 | COPY_PHASE_STRIP = YES; 419 | ENABLE_NS_ASSERTIONS = NO; 420 | GCC_C_LANGUAGE_STANDARD = gnu99; 421 | GCC_PREPROCESSOR_DEFINITIONS = ( 422 | "POD_CONFIGURATION_RELEASE=1", 423 | "$(inherited)", 424 | ); 425 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 426 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 427 | GCC_WARN_UNDECLARED_SELECTOR = YES; 428 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 429 | GCC_WARN_UNUSED_FUNCTION = YES; 430 | GCC_WARN_UNUSED_VARIABLE = YES; 431 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 432 | STRIP_INSTALLED_PRODUCT = NO; 433 | SYMROOT = "${SRCROOT}/../build"; 434 | VALIDATE_PRODUCT = YES; 435 | }; 436 | name = Release; 437 | }; 438 | D959FB5331766D410F44894ED98A6AD7 /* Debug */ = { 439 | isa = XCBuildConfiguration; 440 | baseConfigurationReference = C39D336846F98ADDCFFA5231E119D527 /* YG_ThunderPlayer.xcconfig */; 441 | buildSettings = { 442 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 443 | DEBUG_INFORMATION_FORMAT = dwarf; 444 | ENABLE_STRICT_OBJC_MSGSEND = YES; 445 | GCC_NO_COMMON_BLOCKS = YES; 446 | GCC_PREFIX_HEADER = "Target Support Files/YG_ThunderPlayer/YG_ThunderPlayer-prefix.pch"; 447 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 448 | MTL_ENABLE_DEBUG_INFO = YES; 449 | OTHER_LDFLAGS = ""; 450 | OTHER_LIBTOOLFLAGS = ""; 451 | PRIVATE_HEADERS_FOLDER_PATH = ""; 452 | PRODUCT_NAME = "$(TARGET_NAME)"; 453 | PUBLIC_HEADERS_FOLDER_PATH = ""; 454 | SDKROOT = iphoneos; 455 | SKIP_INSTALL = YES; 456 | }; 457 | name = Debug; 458 | }; 459 | EDB279F3CB370738EA78622831F8CEC5 /* Release */ = { 460 | isa = XCBuildConfiguration; 461 | baseConfigurationReference = C39D336846F98ADDCFFA5231E119D527 /* YG_ThunderPlayer.xcconfig */; 462 | buildSettings = { 463 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 464 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 465 | ENABLE_STRICT_OBJC_MSGSEND = YES; 466 | GCC_NO_COMMON_BLOCKS = YES; 467 | GCC_PREFIX_HEADER = "Target Support Files/YG_ThunderPlayer/YG_ThunderPlayer-prefix.pch"; 468 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 469 | MTL_ENABLE_DEBUG_INFO = NO; 470 | OTHER_LDFLAGS = ""; 471 | OTHER_LIBTOOLFLAGS = ""; 472 | PRIVATE_HEADERS_FOLDER_PATH = ""; 473 | PRODUCT_NAME = "$(TARGET_NAME)"; 474 | PUBLIC_HEADERS_FOLDER_PATH = ""; 475 | SDKROOT = iphoneos; 476 | SKIP_INSTALL = YES; 477 | }; 478 | name = Release; 479 | }; 480 | /* End XCBuildConfiguration section */ 481 | 482 | /* Begin XCConfigurationList section */ 483 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 484 | isa = XCConfigurationList; 485 | buildConfigurations = ( 486 | 47BEF9D903506B003EA5C2B249729489 /* Debug */, 487 | AAF678CED40D3499169D10F63CA0719E /* Release */, 488 | ); 489 | defaultConfigurationIsVisible = 0; 490 | defaultConfigurationName = Release; 491 | }; 492 | 6D0FDA0DCA2B240BC107AC07C41DB267 /* Build configuration list for PBXNativeTarget "YG_ThunderPlayer" */ = { 493 | isa = XCConfigurationList; 494 | buildConfigurations = ( 495 | D959FB5331766D410F44894ED98A6AD7 /* Debug */, 496 | EDB279F3CB370738EA78622831F8CEC5 /* Release */, 497 | ); 498 | defaultConfigurationIsVisible = 0; 499 | defaultConfigurationName = Release; 500 | }; 501 | DD1692EF50C8940AFEE4AD4EFB6AF9CB /* Build configuration list for PBXNativeTarget "Pods-yg_mediaDemo" */ = { 502 | isa = XCConfigurationList; 503 | buildConfigurations = ( 504 | 39AE17B103BDACC488E2187B221C5FCE /* Debug */, 505 | 12D03FC6F13A0088E27794D290E1CDD2 /* Release */, 506 | ); 507 | defaultConfigurationIsVisible = 0; 508 | defaultConfigurationName = Release; 509 | }; 510 | /* End XCConfigurationList section */ 511 | }; 512 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 513 | } 514 | --------------------------------------------------------------------------------