diff --git a/.DS_Store b/.DS_Store index 8e97c69..cdaf38d 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Project/Podfile.lock b/Project/Podfile.lock index cb4c898..d79f1ca 100644 --- a/Project/Podfile.lock +++ b/Project/Podfile.lock @@ -67,4 +67,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 6c3615313d9a556875d5091a2f41e63eb0a02dcf -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.0 diff --git a/Project/Pods/Manifest.lock b/Project/Pods/Manifest.lock index cb4c898..d79f1ca 100644 --- a/Project/Pods/Manifest.lock +++ b/Project/Pods/Manifest.lock @@ -67,4 +67,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 6c3615313d9a556875d5091a2f41e63eb0a02dcf -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.0 diff --git a/Project/Pods/Pods.xcodeproj/project.pbxproj b/Project/Pods/Pods.xcodeproj/project.pbxproj index a98ff9f..1f511ec 100644 --- a/Project/Pods/Pods.xcodeproj/project.pbxproj +++ b/Project/Pods/Pods.xcodeproj/project.pbxproj @@ -7,301 +7,307 @@ objects = { /* Begin PBXBuildFile section */ - 00008D588AD40D7272DAB7799E2D080E /* AVAsset+SJAVMediaExport.h in Headers */ = {isa = PBXBuildFile; fileRef = 5610300532E2247109DFD4D76EB237BE /* AVAsset+SJAVMediaExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0121872003B150EACEDD2FCB92918E72 /* SJUTRegexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB102AC1B66DFE95CAF5C4973D7B7E4 /* SJUTRegexHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01916BAE257279BCE7988587573889F3 /* SJSQLite3TableClassCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5EA9401263E8F06F1503377E77FA32 /* SJSQLite3TableClassCache.m */; }; - 03544A61E54C9809B13BE65B2ADF8BE8 /* SJVideoPlayerURLAsset.h in Headers */ = {isa = PBXBuildFile; fileRef = BE85266176C7C71338C111E3C38FD978 /* SJVideoPlayerURLAsset.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 006300B4A61B05346F15877A9BEF53A6 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F1319F5927523156CD37BC4EE404457 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */; }; 03CF96A93E5D022D277FA7C6000C7D69 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D8020A7CC0B7643F6E8C475C43C4151 /* MASViewAttribute.m */; }; - 04BEB4428CF69CF6600CEFCF55CB150D /* SJAttributeWorker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F6B80BCC0CACC3B38EB1D38413B817E /* SJAttributeWorker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 061C5C418D8DAF3A6F01795544EAB247 /* SJDanmakuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = F2693BCE2E69C8E73B87BA2AB257995F /* SJDanmakuItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0625718C1D8801EFB264C42CADC379DE /* SJSQLite3+QueryExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = FAF560C11B4ECE5AD7F14E7623FBE29E /* SJSQLite3+QueryExtended.m */; }; - 06398DC0BFD56AFBBDC0ABEAE4CE2886 /* SJRotationFullscreenWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = B71A316C34410E35FB678B6C10B29954 /* SJRotationFullscreenWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 06C609E97EFDA11DDA2CCA39059ECD12 /* SJSQLite3+FoundationExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 244DAD424FF523B10A8897572E05EA8D /* SJSQLite3+FoundationExtended.m */; }; - 07B4522624450626D505D4394655B685 /* SJUTRangeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = FB141A2F57D5E955286AD381887C5A06 /* SJUTRangeHandler.m */; }; - 08543324729B8C461C93D303EF5B44A8 /* SJPromptingPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = 58EC8DF3FA092403E60132A8CCD91CF4 /* SJPromptingPopupController.m */; }; - 0AC6F05C2086C1522E17C0AD1A56CD3E /* SJPlaybackHistoryControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D1006A1F1C4EA1B5CE4FFEC7824F938 /* SJPlaybackHistoryControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B1A38EAB0F66E569B536CCC0AE722AB /* NSString+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 023A57CEC1A94B57368BD08F6E3DE78C /* NSString+SJBaseVideoPlayerExtended.m */; }; - 0B4436B0E210FD27C2A04F0950BA4B38 /* SJBaseVideoPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C7DBBB962D55FA0671670C3C46301874 /* SJBaseVideoPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C80006E9A5595035E15FEE6BD497FD0 /* SJGestureControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D6B294F83A2C7071CC767B17C8A6179 /* SJGestureControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E0F4ED6042E83D68416A0A99C243CA3 /* SJRotationFullscreenNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A9541A0D6AC4202BB8504125E3F148 /* SJRotationFullscreenNavigationController.m */; }; - 0F288179EF850FDF32E6A2D97F51FFA0 /* SJViewControllerManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D3E774F9F26ABE0ED954683750FC6E9 /* SJViewControllerManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FB9F82F905F1114FC738CC6EEFD7D98 /* SJVideoDefinitionSwitchingInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 01B29247C32FDC274F480DF74FA8EDB0 /* SJVideoDefinitionSwitchingInfo.m */; }; - 0FC82F36C93AE00C8ACA1B80E305570E /* SJSubtitlePopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC230C39E2DF3BEA4681154EE72CD1E /* SJSubtitlePopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 04610C32007126F13974A73ABCDB87E5 /* SJAVMediaPlayerLayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B34259598DF8705CF58C65D2323560F /* SJAVMediaPlayerLayerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 059F68A3062F9F4C4F8788866708D40C /* SJSQLiteTableModelConstraints.m in Sources */ = {isa = PBXBuildFile; fileRef = A4FD662E8B8FBB06EBC2D8984FE1C3D4 /* SJSQLiteTableModelConstraints.m */; }; + 07371EAC58718090962F70D8CE4555D0 /* SJSQLiteErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = 5230E94FA331835220956A04BE4361D7 /* SJSQLiteErrors.m */; }; + 07636C8091A02E5E8C1069F8BF62348F /* UIView+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FB51D3DC16683D2B12CF20580F55019 /* UIView+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 084A674D0CCC74BC727FD1319E958AD6 /* SJSQLiteTableModelProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 46AFEEEF9E4048C5012BAE12A0BD0686 /* SJSQLiteTableModelProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 088E17E835DFE7C420450FF1DAE6D4F1 /* SJBaseVideoPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B4578624C9F0064CEC33013D9E93D1 /* SJBaseVideoPlayer-dummy.m */; }; + 0929B750E5F200049BF15F02E5894483 /* SJVideoPlayerPlayStatusDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B8218B65CD78111082C5DCE29C9FD7 /* SJVideoPlayerPlayStatusDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 097A61313BFEBBC4815FD6385834DF82 /* SJRotationManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4085761BE09A904E070261EB37C5CA86 /* SJRotationManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 099396753A7CA8DBE542E4F0C1DD96E7 /* SJTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 21B5DCCD5475C74076684366DEDC04A7 /* SJTaskQueue.m */; }; + 0C0B0ECB76A935267489AC5814EB728B /* SJUIKitAttributesDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 921ED55ECF9935906CE78C28F0E78068 /* SJUIKitAttributesDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D8AC474F6490913C6903A98A24DE516 /* SJRotationManager_iOS_16_Later.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CA6482482DDFF238D25E18DCF93A79D /* SJRotationManager_iOS_16_Later.m */; }; 106497E011DF1A90C2779CDDF5028E3A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 111BA026F58227AA23BE6F48922FF088 /* SJPictureInPictureControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = CE8D0CA6FAB8138CC3717D4EBBE3899A /* SJPictureInPictureControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13C0E607A4CD2B39A71148E6DA1BDE88 /* UIScrollView+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3AE5C3B8F45A5DFEE230B198D3D0E /* UIScrollView+SJBaseVideoPlayerExtended.m */; }; - 151EB6AA3F2D9E8425A369A6FFAC2A6D /* UIViewController+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DBC71EB26548876207B11F415F9A04C /* UIViewController+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 158A6D5A2543B3720E315C6626438D62 /* SJUTAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DE31CC0A92F87348FE80FF44FE94046 /* SJUTAttributes.m */; }; - 158E134624929413C52A416743935C9E /* SJAVMediaPlayerLayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8031ABFCA82A090A4A2B4275801B5595 /* SJAVMediaPlayerLayerView.m */; }; - 17329F0A3964EA6E5167088A47393E0F /* SJVideoPlayerPresentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 10B806CDC553592F9D291FC6CBEE5344 /* SJVideoPlayerPresentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 18293B76F9FA0FCEFA22C48011C6BB4D /* SJUTRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = F0B2642E292D48B13F02E4DCB5946A8F /* SJUTRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1860390F3DCFEBE31B5C7ED4FB16EB7A /* SJTextPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9EBB010C1BFC91809761416F303EE4A /* SJTextPopupController.m */; }; + 11AC67524ECACE41B77C87556D313E07 /* SJWatermarkViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4157D2F736FBB34E05D356CA5979CFAF /* SJWatermarkViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11F5EF937F47A9903C2F8DF1A880FE14 /* SJReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B4233E100B77D4A55179DE982FC2E02 /* SJReachability.m */; }; + 123A08E2700EF1E7A60C09848FFE0135 /* SJRunLoopTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5062B42B516C70D0B5F048FF6D1EF4 /* SJRunLoopTaskQueue.m */; }; + 135A965A45D940C93111DBF1A5057795 /* SJControlLayerAppearManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CF881AFA1A55A929182A1E6899241A2 /* SJControlLayerAppearManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14C318BE9A4D43A5799B9EA3EC7D3648 /* SJPresentationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = C32E1648DC8B9704A0F8D8920B038429 /* SJPresentationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17311B0599BDDF2A79B47FE47FC3F965 /* SJRotationFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = D6019E3DB6713CDB38AFE1D9733DA127 /* SJRotationFullscreenWindow.m */; }; + 183976A16325026CA9B89275CA9BB263 /* NSString+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 982ED54D85CA540BB6C84F67BB8DC6D5 /* NSString+SJBaseVideoPlayerExtended.m */; }; + 1AFB06514B098EAA7BF3CF40FC4E0138 /* SJApplicationObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CA0E87DFA7020F5A596E159D92AFD28 /* SJApplicationObservation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1C2D2FC6C77F7AAAED4B87171CD2FA90 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 60CD3C948619BF2C56A0A038F7F12133 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E529D61D32293E44E9735E29878C326 /* SJVideoPlayerPlayStatusDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4FF4BE8A81021372395D37773D9D14 /* SJVideoPlayerPlayStatusDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C5C5C4FB38C10E514EDD7914ECBB995 /* SJSQLite3+TableExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F493264278AF5D15CAC411965168DC /* SJSQLite3+TableExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1CE8A610ECE8BE559692B4E76BB2E437 /* SJAVMediaPlayerLayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D7683374B393C17D9BEE7736A24AC7F /* SJAVMediaPlayerLayerView.m */; }; + 1D05D7E1ED258B65FF3DF0A6067E57A5 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF4816F02D96B83A52072B962145129 /* NSObject+YYModel.m */; }; + 1D46A8300E0CF1FD378302D751464882 /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 611F80D03BBBDF1A3A4D951ECC24A239 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1DF5D19543F6A1804E2C726A572046AA /* SJSQLiteColumnInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C03E903621532CCD14776C3AD7B54F /* SJSQLiteColumnInfo.m */; }; 1EDA1FC87005EF14E125B187B2BE0E40 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 2354413BAE1797B6BE01C95A42B4E92B /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EEE20BF2C26BECCBAE3156A01B42E70 /* SJSQLiteObjectInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D383AEA4E2342CB6BC9DBF0AEBF1A2B8 /* SJSQLiteObjectInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F1BE42F8AE2C8C0BDD4BDD0B339AB25 /* SJViewControllerManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 41A0E56BD1011EAF7B2FD0E37C916287 /* SJViewControllerManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F77C12D048208762E2F360D86264EAC /* SJVideoPlayerRegistrar.h in Headers */ = {isa = PBXBuildFile; fileRef = 16BDC69A2EA4B2E3110FE746832FE2C5 /* SJVideoPlayerRegistrar.h */; settings = {ATTRIBUTES = (Public, ); }; }; 1FBE2B31F0923CC79829D78FC81CD05E /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F506DEB3EFF2A4FDD8CFC43ED88D99C /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 200FC7FE4C99A4072421FFDB12EA5DA6 /* SJBaseVideoPlayerConst.m in Sources */ = {isa = PBXBuildFile; fileRef = E09CB4FDE5A59A9E1225D79F34045612 /* SJBaseVideoPlayerConst.m */; }; 201E0335F9BFDCB70488A906625EB953 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A7EB145180723628EA9F5C33924D1457 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 205DF63FA4428C97E89205594923528F /* SJMediaPlaybackController.h in Headers */ = {isa = PBXBuildFile; fileRef = DDED65ACADB929FCA998D1710186A9CD /* SJMediaPlaybackController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2088E785D4BD06C0729A49E20316267B /* SJDeviceVolumeAndBrightness.h in Headers */ = {isa = PBXBuildFile; fileRef = 3521598902123ACB9C657CC8D2084479 /* SJDeviceVolumeAndBrightness.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21BC4D9AF858B4BD9CD98DB186D944ED /* SJAVMediaPlaybackController.h in Headers */ = {isa = PBXBuildFile; fileRef = E488D5430A251BCA57E9CE9D3DA48691 /* SJAVMediaPlaybackController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 21EE371ABFD574B4D8D127C4DFD93155 /* SJRotationManagerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 36755B0356F06D84B7C76D51A28F982C /* SJRotationManagerInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 227DEFB060BD3F7EDD34F8C9BDFA8932 /* SJRotationManager_iOS_16_Later.m in Sources */ = {isa = PBXBuildFile; fileRef = E8727828D0960A7A1123E11DDFCC9D27 /* SJRotationManager_iOS_16_Later.m */; }; - 23987E01E6564B99A6F8BA0960A2F76C /* SJAVMediaPlayerLayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 083DBFBA96D50921D81E99BFB48A065A /* SJAVMediaPlayerLayerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 28DB9584791BE5246F8347BA905A7593 /* SJSQLiteTableModelConstraints.m in Sources */ = {isa = PBXBuildFile; fileRef = A4FD662E8B8FBB06EBC2D8984FE1C3D4 /* SJSQLiteTableModelConstraints.m */; }; - 294C5640DE132F932E76C5F1252A6ADD /* SJBaseVideoPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3690A5BEC7A02E728BEF6FFC5534F954 /* SJBaseVideoPlayer.m */; }; - 294D645B65AD6DDF63A879A95B203360 /* SJSQLiteErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = FD05C29BF082E15EA21DCD1801BF0772 /* SJSQLiteErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 29EF33A0A2D6AE3C0C8E69AF308228DA /* SJUIKitTextMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C48D0D9441757522AC91B9D4B1A095 /* SJUIKitTextMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A8F4A6A3A4C9B0F97047857BE5B3CCE /* SJTimerControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 32786A84ACD7FA9859896EC93857A821 /* SJTimerControl.m */; }; - 2B49F6CF6AC9A69297AF3C54215A550B /* SJPlayModel+SJPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0FADA91FB5C8671A429C76FFB73776 /* SJPlayModel+SJPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C28754DCC0F6B4070F1E88572B9ED6B /* SJPlayModelPropertiesObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DB6C46D6DE8C16A87F02A2F44E6D81B /* SJPlayModelPropertiesObserver.m */; }; - 2C7B3F3351C69EF5C60940D93105447B /* SJSQLite3TableInfoCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A6DF7C41590F6A5D5BBDE8160C8FFEA7 /* SJSQLite3TableInfoCache.m */; }; - 2CAD6A1A1A69FE5E2C8CD6E6DFB61D3F /* SJRotationDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = 975E13E24EFFDF5CB1DC0AF8EBB32919 /* SJRotationDefines.m */; }; - 2D1446274F6528F734D1ED8C0CE20118 /* SJRotationManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 9848F00F5EC5139419FF07E3070F6302 /* SJRotationManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2D3B2ADFC5125BA048F2D820C0986B21 /* SJReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 06FDF4A3A409E2522FB7C4C92FFE2CD6 /* SJReachability.m */; }; - 2D98857641CBECF8A326178C0C32198A /* SJBaseVideoPlayer+TestLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F55E1FF2CFE4FCC6D52EC8D224522AF7 /* SJBaseVideoPlayer+TestLog.m */; }; - 2DFFCF396791EC71CBEE6DACB68046CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 2F14759465123DEFE9B1F0AA86859D06 /* YYModel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E37824179AEEA19101A4152F4719215B /* YYModel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 314D5524FA341628134E2C93FF00A981 /* SJDanmakuPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C94ADEACD086F45D65E8CA1E14A632F /* SJDanmakuPopupController.m */; }; - 32141800C09A83271489FDA56AEF759A /* SJBaseVideoPlayerResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6477B443DF9EB7EEF5D4121E749C78 /* SJBaseVideoPlayerResourceLoader.m */; }; + 270CCB8EF9DDA1E2D020DDB3845C952A /* UIScrollView+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = F72D7174B4EC651F6075DB7CB99A0B3F /* UIScrollView+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2802057E450B550150D9CCAC060AF9A7 /* SJDeviceVolumeAndBrightnessTargetViewContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D942D4B7779998FE65ACC3FDA449E260 /* SJDeviceVolumeAndBrightnessTargetViewContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2AC21460BAB800CBAA40CE4F9828745C /* SJDeviceVolumeAndBrightnessController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FB5B16199FF5701CCADEED93AC7477E /* SJDeviceVolumeAndBrightnessController.m */; }; + 2AF5CB7246861E4DC39DFFC9FB88DB79 /* SJSQLite3.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEA648C83C118DBE996630F236698C7 /* SJSQLite3.m */; }; + 2BDEBFA2DAEBC9EDDAE65FB1D6964594 /* NSObject+SJObserverHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C85DE61EF71799C3926F7B54F03C55B /* NSObject+SJObserverHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2CAD093FC41FD72CCDADE714AAFCA741 /* NSAttributedString+SJMake.m in Sources */ = {isa = PBXBuildFile; fileRef = D25B2D8099B31BC055BC82298FBF2091 /* NSAttributedString+SJMake.m */; }; + 2D22E364B4CE3D675B62F8D10A03B76C /* SJBaseVideoPlayer+TestLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 71C5B4CA200942F80C88D9966FCB17EC /* SJBaseVideoPlayer+TestLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3066BFB09F73599337CDEE95D963E96F /* SJSQLite3Logger.h in Headers */ = {isa = PBXBuildFile; fileRef = B178A505B8D4CD571F8E56D12DCD4682 /* SJSQLite3Logger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 32B625B27DA49D3638587B2166050CA1 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A52E11AFB1B42072408ED6EE7009540 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3370D95D43AF37CCC1F57724BF5D0C16 /* SJReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = A3A9435BDC0D94326778B3ED356C5254 /* SJReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; 348D37D3366F20484A77A428ABC6C6CC /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C65884AE06B6B46D3BB9A2CF67418D /* NSLayoutConstraint+MASDebugAdditions.m */; }; - 3543A30E5125FA225A04A8483A966CFD /* SJTextPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = EF57937A83A24507AF78A853F84AB642 /* SJTextPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 358E41ADD5458C0928BEF483075FF5B8 /* SJAttributesRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = F49AB9418D3DB09895BDE3AD8CB3EA09 /* SJAttributesRecorder.m */; }; - 3827A0EA00012E95FB331BF84616789C /* SJRotationManager_iOS_16_Later.h in Headers */ = {isa = PBXBuildFile; fileRef = 07E53E29BF0250D227ABDADC2EB1BCB1 /* SJRotationManager_iOS_16_Later.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 388F547FDF974566344711CB77E2643D /* SJPlaybackObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = AF30B70A69580C35FB34028C5902CC3E /* SJPlaybackObservation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 395D289C6BFFEDFA5F8B2E064CF417BC /* SJSQLiteCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F9461DEB390D6705832A281E7917824 /* SJSQLiteCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A3D036C132FB0727ED31C3E37058654 /* SJPlayerAutoplayConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 980526D314A9FBB20E124E7DF44D6C34 /* SJPlayerAutoplayConfig.m */; }; - 3A998E11D94137F2D587CD881D0672FF /* SJFlipTransitionManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 901E0AC1885B32CD73428A9B1DFEE2AA /* SJFlipTransitionManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D828A3D31C65728F872C4FB61615090 /* SJReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E6E2A54CA9C75B96A6957D94D758B0F /* SJReachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E0A9378DB8C823A63F0D097DC284702 /* SJFitOnScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BAC7C572278D0B5E59BEFB5D1F8B06F /* SJFitOnScreenManager.m */; }; - 3E8AB4E4D6A3846AD7332B3544B96AEC /* SJAttributesFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = FC20E4A5AD9B91056552F9B82A998097 /* SJAttributesFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E92CF71F83598308118CFB3446B4C49 /* SJSQLiteColumnInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1364B452B6B2AA200C207D6F0D38DDD5 /* SJSQLiteColumnInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F301A97EB4642758B5B3FCD766DCD56 /* SJSmallViewFloatingControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = BDAE271132E9CE0AF78335694F288C1D /* SJSmallViewFloatingControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 40D3761E3166DCDEE559CD16D23A675B /* SJSQLite3+RemoveExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = B39EC7893B4071DB4D05B00CF497F28B /* SJSQLite3+RemoveExtended.m */; }; + 34A48A68DB09201CAF40C4B9691451D0 /* SJDanmakuPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7596BF92B5735BABF74C70790A4939C6 /* SJDanmakuPopupController.m */; }; + 350B963389BC630F980639204F4CFA42 /* SJVideoPlayerPresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 22937F2920214939877BB29E65D3C0C4 /* SJVideoPlayerPresentView.m */; }; + 357A97074F4A20ADFBB14D8C03BED649 /* SJBaseVideoPlayerConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 578D1FB14D42B75D37A3E570633E2124 /* SJBaseVideoPlayerConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35EA19108709964999D49CCCBC82643B /* SJBaseVideoPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = CF6FFA990E6FA8125BFDA36780031129 /* SJBaseVideoPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 39FAA550F7BC544BD2FFE9E10F82B587 /* SJMediaPlaybackController.h in Headers */ = {isa = PBXBuildFile; fileRef = 42D8556ABC91A099E0F7019D25580230 /* SJMediaPlaybackController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AC5C1A997A3ECD94C275E3FE06DD965 /* SJAVMediaPlaybackController.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8890CF2684313093613802DD380AE0 /* SJAVMediaPlaybackController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3ACA9F35122D53C8F071F012AECB5B46 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 3C70A81DA32FCCC55833469DA96EA4AD /* SJAttributesRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = F49AB9418D3DB09895BDE3AD8CB3EA09 /* SJAttributesRecorder.m */; }; + 3D2E0BB7FA4815E7A09CAAEB209398BF /* CALayer+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 49634969EF46BD7EF13832170B21C3BD /* CALayer+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D96DA941E1DCCE67FF738BFBBFB2766 /* SJBaseVideoPlayer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C7DBBB962D55FA0671670C3C46301874 /* SJBaseVideoPlayer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3FE679953379701EAA2EC0F3BFA4258A /* SJRotationManager_iOS_9_15.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F5FA76D19A22368EB258F79EF307104 /* SJRotationManager_iOS_9_15.m */; }; + 4006BC41FDCE56ED2902A50C0010B61F /* SJReachabilityDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = A8E26E2588834D027B7033118ACF15FE /* SJReachabilityDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 42277E26DAC7C0E32E8E05BB4A7B13BE /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 227C2756E3B3D7F47655412663ACFBC0 /* MASConstraintMaker.m */; }; - 42B283DD8C772A237E2237D82DD7CA38 /* SJVideoPlayerControlLayerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = F1EFCDC1A3E5A67365DF8D4503B35FBC /* SJVideoPlayerControlLayerProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 452EC7383EF26071E7EB857A45B1D47E /* SJVideoPlayerURLAssetPrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F52155259905D12D5219A80333C85B6 /* SJVideoPlayerURLAssetPrefetcher.m */; }; - 45D52C4261E3026498D1F7995D0397A8 /* NSString+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D134099B291B86E3306A1CAD2A17334 /* NSString+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42806A3D26D5D86A59D078B05225AB35 /* UIScrollView+ListViewAutoplaySJAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = AF6ED2593E27C94518218A3316B4B402 /* UIScrollView+ListViewAutoplaySJAdd.m */; }; + 434B4696C072CB324099C63731287B40 /* SJAVPictureInPictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 48424D3291514F700CEB92B514A39E0C /* SJAVPictureInPictureController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 452CDC14C1C2A9D3631CC0F35F748897 /* SJSubtitlePopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C2B5347DE7F6DA3EA916DDD152136A3 /* SJSubtitlePopupController.m */; }; 467F6D11F70A31A91E43DAD324E99ADF /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2083D9C71D660BAE21105BCA614096 /* MASConstraint.m */; }; - 46C747CAEE230CC29551FE93721AB8AE /* NSObject+SJObserverHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C85DE61EF71799C3926F7B54F03C55B /* NSObject+SJObserverHelper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47719F5C30BF2D6AC42470CA9F4D3943 /* SJAVMediaPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3119258F47936ADC956B495EFB972F1D /* SJAVMediaPlaybackController.m */; }; + 47146A9B0B876E7BB23B84A1A43170EC /* SJRotationDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F58C8CF6BC59F7A967808D6BD44B7A /* SJRotationDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4734A8BA39C75A38EC02EA50A830C71C /* SJAVPlayerObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E1EAC9CC489915621913E7D49975502 /* SJAVPlayerObservation.m */; }; 47A93862317BCE280C79540697A28A45 /* Pods-Project-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A98185BFC48E2481B55E8EFADFEDA335 /* Pods-Project-dummy.m */; }; - 47F8B85B280721A0350848AE1FC0BDD1 /* UIScrollView+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = CF72D8DA81E5143AB0D962A815B64F56 /* UIScrollView+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 485179834606815E6DE478B8F651C780 /* SJVideoPlayerRegistrar.m in Sources */ = {isa = PBXBuildFile; fileRef = 48AD14545298EFBE2F4851CD5476CC06 /* SJVideoPlayerRegistrar.m */; }; - 49F0FEB137DBE8F9ABABCEA7A6E23BA6 /* SJDanmakuPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = E5E07FFBC92CCC74657F9D0017992F88 /* SJDanmakuPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A1E58FD011993DBC713096742F01F87 /* SJViewControllerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 71C5135562747FA026E2D38E29251644 /* SJViewControllerManager.m */; }; - 4AAB552E17B1561BF5555167D97F2CEC /* SJSQLiteColumnInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C03E903621532CCD14776C3AD7B54F /* SJSQLiteColumnInfo.m */; }; - 4AD1FE0D4974E68F17EB25CDD9D3FDD4 /* SJUIKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C92DC775315E27C82C2D6A0162198F81 /* SJUIKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BDB767076A5AD6B387EA68F05859FF4 /* SJBaseVideoPlayerConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 348E312BCC4577736B20AF91D9847CB1 /* SJBaseVideoPlayerConst.m */; }; - 4CF2F31AD174139E1765F09CFE87748F /* SJBaseVideoPlayerConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B1F62BF796E63D386CD8233662C4E5A /* SJBaseVideoPlayerConst.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FA02B94669D76E565DCC570090A28A0 /* SJRotationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03705B4A0D3B16454E5AFE377557CC02 /* SJRotationManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51045159A55F76A69D65453D35D47A4D /* SJAVMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = A99F127186D12465B6909C2007CEDC52 /* SJAVMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52BEE5984DD2F1CE3C268C4342C2FF7C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; - 52C8E90A21DE4106E17B3984B3DF60BC /* SJBaseVideoPlayer+TestLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 71C5B4CA200942F80C88D9966FCB17EC /* SJBaseVideoPlayer+TestLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 482B3492D0A2A5DC8CAB72F8C022A1CD /* UIViewController+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B3785AB1AE569222A9A4A845D2DFF90 /* UIViewController+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 487267056CE6C4CD155FFF5E9416A054 /* SJUTRegexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D28FCC873A756DE3F2BFC53BEAB1D5B /* SJUTRegexHandler.m */; }; + 48891EAD88B4E3E7FD8A52CFA75D8C9F /* SJPlaybackRecordSaveHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 62E0971FDB478ED5C993BC29CDC6BAEA /* SJPlaybackRecordSaveHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4A110D9DAD587309C6F2F33B4D211540 /* SJTextPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = A79153679DF698EDBF02F272F9138D3F /* SJTextPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BE7F9AD1A0750FFA87A0524AA4829E4 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = BA1AA396004BBAC7A015C4E9BBC0CBBE /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4DDE5E354D5E0829BFAF2F4D88DF3542 /* SJSQLite3TableInfoCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A6DF7C41590F6A5D5BBDE8160C8FFEA7 /* SJSQLite3TableInfoCache.m */; }; + 4E0EC8574037C735AA69DF29D53247FA /* SJRotationManager_iOS_9_15.h in Headers */ = {isa = PBXBuildFile; fileRef = FC47F98D59C5099F311D358859D0F1FE /* SJRotationManager_iOS_9_15.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5012C55B5BD05DDC88AAB40C3C4C80ED /* SJPlaybackHistoryController.h in Headers */ = {isa = PBXBuildFile; fileRef = 96F792C0BB43ABD5E83261B68B9F185F /* SJPlaybackHistoryController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51F67DE47775247FE556CC00B48D2A39 /* SJFitOnScreenManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E708319AC98B46984B9FFB1B78016E /* SJFitOnScreenManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53088E22BF18AE244D161A150B8FF04E /* SJUTRangeHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = FB141A2F57D5E955286AD381887C5A06 /* SJUTRangeHandler.m */; }; 53710F44A12117B05E737C56DF789A40 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D9C88DC6F0E33C8486631A9B3BDF47 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 552575451E5BE604F361B824CA84C4CE /* SJPlaybackRecordSaveHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 62E0971FDB478ED5C993BC29CDC6BAEA /* SJPlaybackRecordSaveHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 569F78AA4EE68F2A81D795C208CAC993 /* SJPlayModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E02C234169A9DF3E8142339D2B71E355 /* SJPlayModel.m */; }; - 56C1D0D5843B02308F00848B7AF12326 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 5395F1692E6F44F67F16EAF69846D044 /* SJDanmakuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 28F63464CF108E64695D4D35F3472716 /* SJDanmakuItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53C20EC290CD53B2E40510AA39D7097D /* SJSQLiteTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = A14541EABD5A2520B947D474F96AED65 /* SJSQLiteTableInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 559C0BB4163A7EA958833D7BD58848D8 /* NSString+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 2304ABA3EA3ACA99AEA7F457C24E28D2 /* NSString+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 565BD1C97304148E8D6DA113E8AB53F8 /* SJPlayModelPropertiesObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 10F76CBFE32CBB1DF401C5A1FC827327 /* SJPlayModelPropertiesObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; 570F98E8ABC7F8F25A4288377D4A5CDC /* Pods-Project-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B40C9A3112D91F568942AF09CFAABB27 /* Pods-Project-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 593CAD971D37078E889A2F58B0022F17 /* SJDanmakuPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = BA10BC54D941456E33CECEF570739901 /* SJDanmakuPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5A750276797EB17F16175B62A5319376 /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = A57810A21C382E3893421ED1CA8D7FD8 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5B80D31787C76580DB6910E9DD6FBC55 /* SJViewControllerManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D2B71B7690888805083D8FAE257B0122 /* SJViewControllerManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C2C4FE905A71035C07AFAA30A3726F4 /* SJUTRegexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D28FCC873A756DE3F2BFC53BEAB1D5B /* SJUTRegexHandler.m */; }; - 5C3EAFF347D0598A42FB6F256B30B35A /* SJQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = FA303D65D897B3A9E6B29F588D003C81 /* SJQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F1793C8ED9C681EA449D5F37B1B4756 /* CALayer+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B6E7C3670A703A6765FD5EAE90748F /* CALayer+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B1F31BE2CB4681955E0EEA797DB5BE3 /* SJSubtitlePopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = 891F2FC68EABA83C9598D792D8FA907A /* SJSubtitlePopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B3BACA4E1E320EE1F728C90763568ED /* SJAVPlayerItemObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79D875D67313CD8E03B0EE598E6E1068 /* SJAVPlayerItemObservation.m */; }; + 5BBBD3077A250CC0C2BD9FB731BE3688 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E08AD02F9166C2E084886F363FFB80D /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */; }; + 5C846FB434FAFAD03BD8BDE12A1B23D0 /* SJSQLite3+FoundationExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 244DAD424FF523B10A8897572E05EA8D /* SJSQLite3+FoundationExtended.m */; }; + 5E3E1BD7A7A5422ED5760638D9B9AD8B /* SJPlayModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 39C49045B8B4DC8462967DA12292CC83 /* SJPlayModel.m */; }; + 5E9889EB2AAEF68256537E742D8DDE12 /* SJAVPictureInPictureController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81E799687BFB874656F509975A95BDFA /* SJAVPictureInPictureController.m */; }; 5FF283689098689091AE7EC9A850E9FE /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8873842EE0F147AA86E07E2D93A5FAA0 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 613991FCF40E415A44843335DEF3C1CB /* SJPlayerAutoplayConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B929DEE463CC0FD5A31446DE540B805 /* SJPlayerAutoplayConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6283E5150E3558C2FBBDC89C0E134209 /* SJSmallViewFloatingController.h in Headers */ = {isa = PBXBuildFile; fileRef = 749540979324D82B873094BF003F8347 /* SJSmallViewFloatingController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6455A298CB5DADBD2088084CFB7F175C /* SJBaseVideoPlayer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 46B4578624C9F0064CEC33013D9E93D1 /* SJBaseVideoPlayer-dummy.m */; }; - 654C701352321F93C0684368D5FF1268 /* SJMediaPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE9939141945E30FCEDFE7FD8E0974A7 /* SJMediaPlaybackController.m */; }; - 66EDB22B9E72FC68143242E96189BDA2 /* SJUTRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CD1C32B06B928AFE2F63377D39E56F /* SJUTRecorder.m */; }; - 67E5081EA00B1DE4C34E788542BD9019 /* SJRotationFullscreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 87440D5402839AFA29113FC637E6AA65 /* SJRotationFullscreenViewController.m */; }; - 67EBEF8E1841F383EB3DED218620F8AF /* SJAttributeWorker.m in Sources */ = {isa = PBXBuildFile; fileRef = 00D09DDDAF126EFF2038BFDFD301E1E1 /* SJAttributeWorker.m */; }; - 68B015F2D2ED151BFF702639EDF408C0 /* YYModel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5090E8AA1B55EBDB977F0D05DE9EA675 /* YYModel-dummy.m */; }; - 690E37CCC901C7727CDB9B2E96D3C685 /* SJSQLite3.h in Headers */ = {isa = PBXBuildFile; fileRef = AD6423FECBE8862009612DF8EE1DCD11 /* SJSQLite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 69B7B9968E7D24EDDEB9A2B2557D8630 /* SJDeviceVolumeAndBrightnessTargetViewContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BEA2E2AD67BEAAEDC079949988D0E69 /* SJDeviceVolumeAndBrightnessTargetViewContext.m */; }; - 69B823960E316BF040DCD854F1A3D365 /* SJTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 21B5DCCD5475C74076684366DEDC04A7 /* SJTaskQueue.m */; }; + 63180C619DB2FE88E6035E2F2D78A666 /* UIView+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 956E1EB5A0FCC2F6CD6A835C91C6A24F /* UIView+SJBaseVideoPlayerExtended.m */; }; + 6419B90B7894D9612E08899554A28513 /* SJAVMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = DC0DC58592051239483F16B11ECB635E /* SJAVMediaPlayer.m */; }; + 65A52118848865CB69103BE6A52D1EAC /* SJTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F2DC1A74D5EDB795B5ACADD7874FAA83 /* SJTaskQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 671CB8F4BA0C6FC15953E0F9CB398EB9 /* SJSQLite3TableClassCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 27EBDFCDE430370FF4998B008929AD30 /* SJSQLite3TableClassCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6778FAC652F98309F0F5499FFD26ED77 /* AVAsset+SJAVMediaExport.m in Sources */ = {isa = PBXBuildFile; fileRef = 611D8572656342B62F9AD6D3243FA76A /* AVAsset+SJAVMediaExport.m */; }; 6B246B94E6AA0DE41B3A0CE1E19C6ABE /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D8C7C9D28F786ACFAF8EB3F2E99AE91 /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6B5DE529A22C89C67A0CE1FF48140478 /* SJUTUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0843532A269B016674A5BBAA8A6E13F4 /* SJUTUtils.m */; }; - 6C44E2088736C5C9C6BB59CF94C2C493 /* SJPlayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4455C058FC6CE9D075C771CE5E71FA82 /* SJPlayerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DAA6FA0EE0D9D0BC0FC4B8B1DD9A4C8 /* SJSQLite3TableClassCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 27EBDFCDE430370FF4998B008929AD30 /* SJSQLite3TableClassCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6DABD47DD7DAD4F168BC5A1A327358AE /* SJControlLayerAppearManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 39DC0326667CD2D536F58954559D6A53 /* SJControlLayerAppearManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6E13F7197A177E5EA425835BF2642987 /* SJAVMediaPlayerLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = D35CAA5BE0340A8C6770FBFF24E83E6A /* SJAVMediaPlayerLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F36CCE69A014BE143B5D054735229D6 /* SJSQLite3+QueryExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 41FD592DB8D354F4D221B5429D3929F4 /* SJSQLite3+QueryExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 70240DD58B7F5DDD5BFD30FA87160AE6 /* SJControlLayerAppearStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 95A7270FE765D4A15BCCBDF534E0921A /* SJControlLayerAppearStateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7196AD9D4A2066DBAA02D1F57F003C4F /* SJSQLite3TableInfoCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 875EDA42BE0BCF5A8515B14E762CA75E /* SJSQLite3TableInfoCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7202BB5CAD832C5E32E6991CAEC49CAC /* SJSQLite3Logger.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D2128B1E2295EB0BDF4A2162762C95 /* SJSQLite3Logger.m */; }; - 723B4ED262C8B1F3153BC19F1D801B5A /* SJAVPictureInPictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 73FD49A002BB136914183F90D917E58E /* SJAVPictureInPictureController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 731C949688FA87733B718852BE10F4E6 /* UIView+SJBaseVideoPlayerExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = A2B1E3F45196F887A2FA6E9C71FE4E86 /* UIView+SJBaseVideoPlayerExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75058433EA3557443649965FD17551CF /* SJTimerControl.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5BCA01CABFC736AB0A0D6714533A96 /* SJTimerControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75F52E5BD89BCDF4E150CC408C72145B /* SJVideoPlayerPlaybackControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = FE30955F1F777EE3795D7D2E320F1030 /* SJVideoPlayerPlaybackControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 769D3BAB2E772B2B115A98C9304EFDB5 /* SJSubtitleItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 53B3E56BE5C4147CE3F70B0DBFC089BE /* SJSubtitleItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 779D48BA693A0607C217F2F1E734090E /* SJQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 14604A6772FE91BE2E0EE59C26FC56A7 /* SJQueue.m */; }; - 7901CC78CC3A311B24B0BF7545ADDAA5 /* SJRunLoopTaskQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5062B42B516C70D0B5F048FF6D1EF4 /* SJRunLoopTaskQueue.m */; }; + 6B5C45599C2E67C2DE706CD1CB1B1D48 /* SJSQLite3Logger.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D2128B1E2295EB0BDF4A2162762C95 /* SJSQLite3Logger.m */; }; + 6D816E9ADD706D5C63D37274F1C7E444 /* SJSubtitlePopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = F0C4580F5C877250FA437268DBD2A571 /* SJSubtitlePopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F9DB08C0457A3692762C319137256A4 /* SJVideoPlayerURLAsset.m in Sources */ = {isa = PBXBuildFile; fileRef = DB1E9822D571767E7D0D07F744E1D481 /* SJVideoPlayerURLAsset.m */; }; + 7106F4AC9AED2C9B18F3DD9BCB9F30D8 /* NSTimer+SJAssetAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 32633C2B6F243EA4912EBFDE6BA42EEE /* NSTimer+SJAssetAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 71195E84A9434808D034CE1F2D02B25A /* SJFitOnScreenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D6D4ABE1A9F71793A1153BD4D32A045D /* SJFitOnScreenManager.m */; }; + 718BDE36F51F244715356062CF977B83 /* SJSQLite3+TableExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 66C1C5952F6FE54091C8006A63DD1DDC /* SJSQLite3+TableExtended.m */; }; + 71D64DDBA97B545036F11A21336E187D /* AVAsset+SJAVMediaExport.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F8BC059F87DFA9AC3C59793420F85E /* AVAsset+SJAVMediaExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72867C602465496740C2F795C01B2E58 /* SJVideoPlayerPresentViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 23267307B267DFEA9225F6ED36C9128A /* SJVideoPlayerPresentViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 734C47FBDCFF10D5291AA552B5CE33C0 /* SJBaseVideoPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3690A5BEC7A02E728BEF6FFC5534F954 /* SJBaseVideoPlayer.m */; }; + 7446E224879C073F3A752B9FC9E1816F /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 75EBAE83AB0DADD176AD120E6439965C /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74815EE03E4BB313703557067FE2BE7F /* SJBaseVideoPlayerResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6477B443DF9EB7EEF5D4121E749C78 /* SJBaseVideoPlayerResourceLoader.m */; }; + 760695C7282229CA40E848D0597F81E0 /* SJDeviceVolumeAndBrightnessControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 213FFEDA45ADB681ACCD50CCFDE6C443 /* SJDeviceVolumeAndBrightnessControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77758CA4720327363B1D7384117D639B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 79897EC6995688D1B0E36F552E2E79E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; + 79A4CB0FB38413EE360DD0192EED6741 /* SJControlLayerAppearStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 84A248C7DBC4E1FA764F3626C33C3EFD /* SJControlLayerAppearStateManager.m */; }; 79E1594E5E09571BA22096111DD55594 /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A5E90CFF5C5CFC3B93DAA4B81DB4EE4 /* NSArray+MASAdditions.m */; }; - 7A1B4B99BACAEC8B82888430B370ACF8 /* SJPlaybackRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EAC1AC9A8D4548491CDAEE18FE6B60A /* SJPlaybackRecord.m */; }; - 7ABFE03525B2CBDCEED3660C14D26534 /* SJRotationFullscreenNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 294017786F26EB778F939EEC97A0E1D9 /* SJRotationFullscreenNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7B2BEF7CE5C7B7C65365A79C1E307A16 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = D53A9817AA738CC1A1366FFAB1B21D83 /* MASLayoutConstraint.m */; }; - 7B8104E2D0D350D981A33451A1E4C625 /* SJPlaybackHistoryController.m in Sources */ = {isa = PBXBuildFile; fileRef = 00A79B73AB2D4E1405F7DC486710E7B8 /* SJPlaybackHistoryController.m */; }; - 7C21FB63A807C1A11914142B6CCEB958 /* UIView+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = AD660D70766648137B9E26A225A99307 /* UIView+SJBaseVideoPlayerExtended.m */; }; - 7EDF9BDC1BD91D9C003106596023D935 /* UIViewController+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 5670D039D0CE223627D97F9E0528F8D2 /* UIViewController+SJBaseVideoPlayerExtended.m */; }; - 8337BF19E85B0B0001DA04DDD7B8AE2D /* SJDanmakuPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = AB5CBEF27235F16A2CDB66FA7410B82C /* SJDanmakuPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83AA38400B0CA5FB03AFDA4473EE601E /* SJFlipTransitionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EADEF6D157693B7E30D45E8BEF412C93 /* SJFlipTransitionManager.m */; }; - 84217FA9223DABC5E5666205CA971681 /* SJPresentationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = C32E1648DC8B9704A0F8D8920B038429 /* SJPresentationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8547BDB468B3D7D40626D5862B171D9F /* SJDeviceVolumeAndBrightnessControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 634657ABDC0BE9988CB15FC9EB233F5F /* SJDeviceVolumeAndBrightnessControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 859CD55E327105F2E9B731AA91E8AE07 /* SJSubtitlePopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = E7AE1530F1DEEF1225A14C667B373D3B /* SJSubtitlePopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86E43D742588A722E033C27F06CCA4C1 /* SJVideoPlayerURLAssetPrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FB678429081489E40F0BB5D2C2CD6697 /* SJVideoPlayerURLAssetPrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 891BD3D9063D8D89E58DF99F8BCB5097 /* SJPlayModelPropertiesObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B2C084A9E285A1830C1A73989EE273 /* SJPlayModelPropertiesObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89896551E03CBB7A300F2FDC5A82BEA4 /* SJRotationDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = AFC81D9B4E03373351D64672E42F3E26 /* SJRotationDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 899CA8AF92FB1C67E1D10D36CD1C33A8 /* SJRotationManager_iOS_9_15.m in Sources */ = {isa = PBXBuildFile; fileRef = FA9409651783AC17474EEFB0BEF5BF6E /* SJRotationManager_iOS_9_15.m */; }; - 8A35500F1D7E9B3281153082C3DCE5E4 /* SJRotationManager_iOS_9_15.h in Headers */ = {isa = PBXBuildFile; fileRef = D5CE32FEFC818A4C8A2D6F1A655B1EFD /* SJRotationManager_iOS_9_15.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8ADEC767C9A3720C8A25243EE16E9687 /* SJFlipTransitionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8D862B90602EDF0C8AF2568ECAF646 /* SJFlipTransitionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BA50D1252BB3BF4517BBA25DD28D6BD /* SJSQLiteTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E51943320BDF6ECA6CB48BC481398883 /* SJSQLiteTableInfo.m */; }; - 8EA87777669F6174E2F50D99DFAA04A4 /* NSTimer+SJAssetAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 08F6FA93FB93ECCBDB4120EA034DFBB7 /* NSTimer+SJAssetAdd.m */; }; - 912033602E08C2310A8B264EC147B4E8 /* AVAsset+SJAVMediaExport.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AD078C8F66A84EB34561A3729CABF81 /* AVAsset+SJAVMediaExport.m */; }; - 925427A3217592EB0D76F0F3E77E461D /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 64E670CB73B0364F174DCA6C15FAD7F1 /* YYClassInfo.m */; }; + 7CAB1BF3C16B5E3C903478E26CAD205A /* SJPlayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 51B79E3738CE35C29D3073D2D7C4D63B /* SJPlayerView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7CCA4FA0E00B9F6E5B7C2F43AA228F69 /* SJSQLite3+FoundationExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 4667FD2126EC3C2F44805CFCB3B7E9F2 /* SJSQLite3+FoundationExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80AC09323DC630F000DDC4A37345F54A /* SJSmallViewFloatingController.m in Sources */ = {isa = PBXBuildFile; fileRef = 55FD53183B3C9707A06AD1627FA4A76E /* SJSmallViewFloatingController.m */; }; + 833D2E782596099974416E9AA1AB2E65 /* SJUTRegexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB102AC1B66DFE95CAF5C4973D7B7E4 /* SJUTRegexHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 852487026BE741AFBFB59DB175E40CA9 /* SJPlaybackRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = ECFB0A9AC75A4149196B15780D876504 /* SJPlaybackRecord.m */; }; + 8655ED0AB768AB887356D596B21861A9 /* NSAttributedString+SJMake.h in Headers */ = {isa = PBXBuildFile; fileRef = 7375E545EE7E4C5ABA64C972BEF04E68 /* NSAttributedString+SJMake.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8860FC28BD96C648E1C488E22AE2CC17 /* YYModel-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5090E8AA1B55EBDB977F0D05DE9EA675 /* YYModel-dummy.m */; }; + 8D6E10ECF42967A65FE1E3FB882327F4 /* NSObject+SJObserverHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 253E7AB458697BF77762C5107AF005F3 /* NSObject+SJObserverHelper.m */; }; + 909176E6CA1B5706D558B815A27449C7 /* SJRotationManager_iOS_16_Later.h in Headers */ = {isa = PBXBuildFile; fileRef = 66E4E86969DC299505E951C41D38EBE8 /* SJRotationManager_iOS_16_Later.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9186E5A7DAB422FD37E776BC4558D3D1 /* SJPlayModelPropertiesObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = D1C64553DBFCD96766DE1C8C52A8D855 /* SJPlayModelPropertiesObserver.m */; }; + 93A1269EB943E4783A691D1149CF1A16 /* SJSQLiteTableModelConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = EF0E4781977790F5F94C8F78CEBE5774 /* SJSQLiteTableModelConstraints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93B764BD3F11201852424F7BF5DF0A7E /* SJAttributeWorker.m in Sources */ = {isa = PBXBuildFile; fileRef = 00D09DDDAF126EFF2038BFDFD301E1E1 /* SJAttributeWorker.m */; }; 94ED9455090CFB4EB1D0C598B467B3C7 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 412AC61BC73BC86368F9A49B5FD446A1 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94FEB139478E0903AEFC890AE4DB7C01 /* SJSQLiteObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B677DB17831B788FAADC932BF6EC1BBC /* SJSQLiteObjectInfo.m */; }; - 952A10E7E32D53F73EE588194B88A56A /* SJSQLite3Logger.h in Headers */ = {isa = PBXBuildFile; fileRef = B178A505B8D4CD571F8E56D12DCD4682 /* SJSQLite3Logger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 954F33D480B2DCA2D850EFD792125BC3 /* SJVideoDefinitionSwitchingInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CA17ACBFD8FDD9A80368635DA653942 /* SJVideoDefinitionSwitchingInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 95BF3037ED786EC6BB69813F57F2B01C /* SJWatermarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 17F694EB0B1BBBC5C523DC23383854A8 /* SJWatermarkView.m */; }; - 95DD70538402DF025BC8D4E8BF03B2BE /* SJSQLite3+TableExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F493264278AF5D15CAC411965168DC /* SJSQLite3+TableExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96684A16CB1CF33D4A000A49EDDCB280 /* SJSQLite3+TableExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 66C1C5952F6FE54091C8006A63DD1DDC /* SJSQLite3+TableExtended.m */; }; - 966F53BE063798867189A77DED3C0394 /* SJUIKitAttributesDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 921ED55ECF9935906CE78C28F0E78068 /* SJUIKitAttributesDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9770782C08561A646048446F1C2D6938 /* SJUIKitTextMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = CE35AB1102F8410DBD57519CE1D33145 /* SJUIKitTextMaker.m */; }; - 99EC3A05D89F3CF1CE132D2D52B779DC /* SJFitOnScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 825A8E710684CE55BAFA7CE9E45E8556 /* SJFitOnScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9BAB5F49373D54E1E40A848ABD8C5056 /* SJUIKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BB701A8A6B10E9364F652E334564562 /* SJUIKit-dummy.m */; }; + 95BC24F0ECE56ECD4E57B91AA819A3DF /* SJMediaPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E10A7CB196ACB8700754A407641D639 /* SJMediaPlaybackController.m */; }; + 95CD4D0E8F9FF135FC420E0BD81BDD3C /* SJRotationFullscreenWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 81B4C6C30052DDBF85C81A2689AC10EC /* SJRotationFullscreenWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96082A3FF888B445983DC27F1A3DE324 /* SJUIKitTextMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 31C48D0D9441757522AC91B9D4B1A095 /* SJUIKitTextMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96E526CE8A638F61F39501432234CAA2 /* SJWatermarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E5EE2A3D11B76538AB4F4136384F6C /* SJWatermarkView.m */; }; + 98FFC6E47817AE120718BB99988DAF4B /* SJAttributesFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = FC20E4A5AD9B91056552F9B82A998097 /* SJAttributesFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9915E5E6A0695E312CB12E45401A3A99 /* SJTextPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F9F661354CDAC7E9675A88788D95892 /* SJTextPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A8F80CE9D18A6A3BB94DA0F5C7DA57D /* SJUIKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BB701A8A6B10E9364F652E334564562 /* SJUIKit-dummy.m */; }; + 9AF7CFC03DD481D035038953DF1898C0 /* SJUTAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DE31CC0A92F87348FE80FF44FE94046 /* SJUTAttributes.m */; }; + 9B093CA639EED53534BDF58B02FACF0A /* SJPlaybackHistoryControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = AE382612C62F276B031D8C26E0749B1D /* SJPlaybackHistoryControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9BCB000434AEB6C9FE57002EDFAEAD35 /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 1146B426E4C14B191518E883EC18BFAA /* MASViewConstraint.m */; }; - 9BCEBC1BFC65F446F67BF2851F3271AB /* SJAVMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = F236D9167F4A7DE896D190EE9A0C6C87 /* SJAVMediaPlayer.m */; }; - 9DE624FB9037947D5616CD7404B97D43 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF4816F02D96B83A52072B962145129 /* NSObject+YYModel.m */; }; - 9F96BDA6480F6C97EF86959328523F67 /* SJSubtitlePopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18CAD14ECCC9ABBA53F7A18DE3563648 /* SJSubtitlePopupController.m */; }; + 9CB8BCADAF5006DBFED9AD6FADAD0E78 /* SJViewControllerManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E9AA65C95D03C0B87C48C2033519073 /* SJViewControllerManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9D7D438A83B0BDCFDA71DAFD1E1A8375 /* SJSmallViewFloatingController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DEF8B4D6D95F322193154C28419D528 /* SJSmallViewFloatingController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DF496BADD087015AF5509FA27DF3F01 /* SJSQLiteColumnInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1364B452B6B2AA200C207D6F0D38DDD5 /* SJSQLiteColumnInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9EE9359A2574BFB5EB1ADD5B78137A44 /* SJSQLite3Condition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8559AB1E3CE526B2D75F9B273169BA96 /* SJSQLite3Condition.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F9D8F6F78EDA33C111099698DD104BF /* SJRotationFullscreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 12E35798468478FAC0E4F04976C8284D /* SJRotationFullscreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A025BE277C9B1AB9192EA191F333CA3F /* SJRotationFullscreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B92098D1F98D73A39FB979E0B49E974F /* SJRotationFullscreenViewController.m */; }; A115FE757A8F7E88A576CACBCF842742 /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F0D5BB2456E6020E5E42354F53BA503 /* View+MASAdditions.m */; }; A181CA1C59A52EFAC2315E5A55ECA33F /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE866BF9C69361D0D776B28D5577E022 /* Masonry-dummy.m */; }; + A19077B60871AE3580D90ACF879473E7 /* SJRotationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C2BE73E295C91D891C7C9C977CD5B76 /* SJRotationObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; A1B9596BE1EDAB3A8C05AD0E56073C30 /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = DD9E66FFA16B62AA27015BABA2C28740 /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A21241001FEDFB4B628A120F917F1BB6 /* SJDanmakuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 9844E08C5E20CA8D7AFB6A4529FF7E61 /* SJDanmakuItem.m */; }; - A274A85067429517BEB7EA6C05970CCE /* SJSQLite3.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BEA648C83C118DBE996630F236698C7 /* SJSQLite3.m */; }; - A2C4C42BEA551A6F7428564672C4756A /* SJBaseVideoPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = CF6FFA990E6FA8125BFDA36780031129 /* SJBaseVideoPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4CB81F8B40C8FD243A0CC29514CBE5D /* SJPlaybackRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D0968629F2638B82611BDECD7A7DC129 /* SJPlaybackRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6613906831BEF3AAD097545BE2EE872 /* SJPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8854884DAB4CC9454414C4DACD7319DD /* SJPlayerView.m */; }; - A6D404E6D4CAC32F25EE1EC297C438AF /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C1F17FD339AB46B309936ECFDB4F99 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */; }; - A82975AECF6DF0405C89BBAC6422E011 /* SJSQLiteTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = A14541EABD5A2520B947D474F96AED65 /* SJSQLiteTableInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADB51EA337F15E44CFEAD90223689B45 /* SJTextPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 29D6C77207F9BEB4E7C1E5CF5B7AA6E9 /* SJTextPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A376BC3D11AF675B5BCA821767B40D42 /* SJPromptingPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 87FFA093FFACA46CBCFF431DDBBA6351 /* SJPromptingPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3E19E217A712A9F003D750981C12E28 /* SJSQLiteObjectInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D383AEA4E2342CB6BC9DBF0AEBF1A2B8 /* SJSQLiteObjectInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3E2F9E02FD197F245F4F7AF8C1BF453 /* SJVideoPlayerPresentView.h in Headers */ = {isa = PBXBuildFile; fileRef = B03BC4E12916C4D4B067DDB7052D3276 /* SJVideoPlayerPresentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A4C9059322EF16F0D58E06000E16A49E /* SJAVMediaPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = A7CE1476A43BCD424FFCC5A10C1839A4 /* SJAVMediaPlaybackController.m */; }; + A6DFE19C58149E009FF54261A8142BE3 /* SJSQLiteErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = FD05C29BF082E15EA21DCD1801BF0772 /* SJSQLiteErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A78219E5A486EDED8D078C8F81D35685 /* SJSubtitleItem.h in Headers */ = {isa = PBXBuildFile; fileRef = B44A25546E9C4114C0254DFB68F5D569 /* SJSubtitleItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7AFAE39F73545667EF7D97EF67E3765 /* SJRotationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F9991DA5D6A6CBED0F3B18FCE9EB69A9 /* SJRotationManager.m */; }; + A835A361729FDB66D6EBACD7DFCE9574 /* SJSQLiteCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F5875AB38F5D486415BCB37BE96C557 /* SJSQLiteCore.m */; }; + A89006D4C30D09AC22609BD4103DB9FE /* SJDanmakuPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E3F1C17A6B7F65615610E65A2298EA6 /* SJDanmakuPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA2A8B2CC4D7CC205C300D1DDFFE7F5B /* SJAVMediaPlayerLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 878311675623B2B7A0C9D9B0E67D89FE /* SJAVMediaPlayerLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AB3D29D8F3F798E34AFBE6CF1587E459 /* SJPresentationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C9C7D16213697ACF2A56477D23C8B3 /* SJPresentationQueue.m */; }; + AC5BE508E549CC55738377305D8EA4AF /* SJRotationManagerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = D8EF41574076BF72542F7A5DC785C9E2 /* SJRotationManagerInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AD0ECF59632B0E2B3B09757F42609BCA /* SJSQLite3TableClassCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5EA9401263E8F06F1503377E77FA32 /* SJSQLite3TableClassCache.m */; }; + AD39AFCC804A31369A3F4C478369A5BA /* SJQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = FA303D65D897B3A9E6B29F588D003C81 /* SJQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ADF98CD58B246CAC99E7F4604471D2E4 /* SJPlaybackObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = 81240F22740A8A63A0D8076004D497CF /* SJPlaybackObservation.m */; }; AE543D0702659F67813EDDB958CC4DD4 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = A68A7D93DE287CB24440ABFEBD80EEE5 /* MASCompositeConstraint.m */; }; - B0F3E5CE532BAACDCAC92051166C7667 /* SJSmallViewFloatingController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EB70D8A5CF92A41BB77F0BD0167D134 /* SJSmallViewFloatingController.m */; }; - B1E43ADBC241F8FE92EC5BA0716C809E /* NSAttributedString+SJMake.h in Headers */ = {isa = PBXBuildFile; fileRef = 7375E545EE7E4C5ABA64C972BEF04E68 /* NSAttributedString+SJMake.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AF4F49059332514A5862627F33794D9C /* SJFlipTransitionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C41816EE4D39F23631D9A248CE9E822B /* SJFlipTransitionManager.m */; }; + AFB8B3759E41409BE52555D22C1AEB4A /* SJPlaybackRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 210E56DF59FD53563746CBF0BF5DF211 /* SJPlaybackRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B0DDEC431304AB3930FC10AFFBFFB3E8 /* SJUTRangeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F926D207DB72C68184F6B4A0D2B72B /* SJUTRangeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B155B01758A840A864FAC728352D9190 /* SJSQLite3ColumnOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A287CA49713CCE45F6BA4C90D2A4AC5 /* SJSQLite3ColumnOrder.m */; }; + B1A41A8DCC5BB8C9E48A1BB9B18603B1 /* SJPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = B006EFD238852358ACCFCB6C8620AAF4 /* SJPlayerView.m */; }; + B1DB1863DFEEB548339E71FF0A8FB551 /* SJRotationObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 851FBB3A8550202BB4E942C525C5DD8E /* SJRotationObserver.m */; }; B207253F446085968D4B76A2AC8C743A /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 387A6B17EF03AFA94E1E503A47D47225 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B23BD06D9ABC495D7E04E5928199775C /* SJRunLoopTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CC20B9E78043975D22417110E92D99ED /* SJRunLoopTaskQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2F7B5C9ABBB05292A0248F3300381AA /* SJVideoPlayerURLAsset.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E1FFC1D960251B25014C75BE7B96745 /* SJVideoPlayerURLAsset.h */; settings = {ATTRIBUTES = (Public, ); }; }; B32CF158A673A3EE9FDAD470E0283C45 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F18AE2471FF679DB02706647E5BD5551 /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4AF0F55A1FBB7B3C768F80B11033269 /* SJTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F2DC1A74D5EDB795B5ACADD7874FAA83 /* SJTaskQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B36EAFC732B4F1E8C4B2F301B1B9AA90 /* UIViewController+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 37F41FBE5D7BF47F4AF34E33869A5CCE /* UIViewController+SJBaseVideoPlayerExtended.m */; }; + B38EE09BB79FF3A5ECDA7F08CD0F689F /* SJVideoDefinitionSwitchingInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 437F092AC93263E99C9D1B182A9DD3CC /* SJVideoDefinitionSwitchingInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5517F3C1C686C4BD25D002E3F3759A5 /* Masonry-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA38567F0BD4AF77BA843931BFDB627 /* Masonry-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B56C86E6ACCB3CD48907C82D3BAE8BD6 /* SJRotationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C56753EC5085EEE4E5781D5256B4227 /* SJRotationObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B746727C2E7B9B6544003265EB421101 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 7527B6BC6B08DF5FF3C181A2D61532E3 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */; }; - B86EAB1568E8F0DC393F21DAC7551EE0 /* SJSQLiteTableModelProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 46AFEEEF9E4048C5012BAE12A0BD0686 /* SJSQLiteTableModelProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B917570CD43723365FE5D62A169C74E1 /* SJVideoPlayerPresentViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7116CA3D054C4044FAB64014051AD8 /* SJVideoPlayerPresentViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; BA5A99C77CC0B847E9C491096EA4E540 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = A9488DC75E6BBDC423D064DF0213E734 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBA2B7A689CC559C332DE21021E37FDB /* SJSQLite3Condition.h in Headers */ = {isa = PBXBuildFile; fileRef = 8559AB1E3CE526B2D75F9B273169BA96 /* SJSQLite3Condition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BD19EAE8EB5B5ECA194BE9F98CF3CDC1 /* CALayer+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = 6426C5799F63EAF83FA1984B6E66094E /* CALayer+SJBaseVideoPlayerExtended.m */; }; - C01AA781940C4AD0EC7D7A240A7E39ED /* SJWatermarkViewDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = F3ACD6C1707B36AA73462F828C3E0BA0 /* SJWatermarkViewDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C026727718B44CB114D97E4DD7F01973 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = B992B1D45054BAF0F6DFAE6F315B29BF /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C0688511BA9D9F3741B305F02FEF795A /* SJSQLiteCore.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F5875AB38F5D486415BCB37BE96C557 /* SJSQLiteCore.m */; }; - C0B8EF391D6AAD9899608925BD1BAE24 /* SJVideoPlayerURLAsset.m in Sources */ = {isa = PBXBuildFile; fileRef = 905176057F683399D447AD4CEA5109C0 /* SJVideoPlayerURLAsset.m */; }; - C1F0F73C6CD3B14433FD6F7773AFB929 /* SJReachabilityDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = F2BDDDA7C6EA9BA7E6AAFD546E1E71E6 /* SJReachabilityDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3084BFD59140D8B2EB241B8BA7426D8 /* SJRotationObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = A7823DBE25F836F1C9B27D43F091AD82 /* SJRotationObserver.m */; }; - C45C63AAD3EB2BD06E982AC8E25F56A5 /* SJDeviceVolumeAndBrightnessTargetViewContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CDA4B2240AFD389F9964535EF09FC0B /* SJDeviceVolumeAndBrightnessTargetViewContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C60780245B34374563EA5C97DA1BD923 /* SJUTRangeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 37F926D207DB72C68184F6B4A0D2B72B /* SJUTRangeHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C77B875D4AE824959324D88B3F32CB6C /* SJSQLite3+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 849BCD288A344B4FFAE4C5027CB95504 /* SJSQLite3+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81745FCB7FA4DF1894D3BBC0AE8EFE3 /* UIScrollView+ListViewAutoplaySJAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 497BE8CDA8792D74BBDBFBD75C3E4221 /* UIScrollView+ListViewAutoplaySJAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C88F8965928A155BBBC214A5C606964D /* SJBaseVideoPlayerResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = BAA505ACD2D3FF0FA40DA757FC5BA6D5 /* SJBaseVideoPlayerResourceLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CB05C35B4F563A3DDBE7434CEC2E084E /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CBB92B9BF0462800B5DD1E1B5F02C2E /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BA6A0183E6F6EFD966C4F60A3E7DFABF /* SJUTUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = F3278F912AFF535DD8A8EA613BE321A4 /* SJUTUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB1CB7F2D76A5FC2E142CA7823836475 /* SJRotationDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = FF656AC9ED804634590BB3CD5217F1F8 /* SJRotationDefines.m */; }; + BE0BB86E342A7B6C3510E3F7552CD22E /* SJPromptingPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2C56F87C3795176C9701595AE85CDE2 /* SJPromptingPopupController.m */; }; + BF4C4418DF1C0298A591F1CA86635F10 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 64E670CB73B0364F174DCA6C15FAD7F1 /* YYClassInfo.m */; }; + C08E657697473E41C78B1E35C77A5A9F /* SJUIKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C92DC775315E27C82C2D6A0162198F81 /* SJUIKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1504AFEE0D5CC7216E339AB08F2CDE1 /* SJBaseVideoPlayerResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = BAA505ACD2D3FF0FA40DA757FC5BA6D5 /* SJBaseVideoPlayerResourceLoader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C163C44E4842D8D49F4CAF34E6FFE82C /* SJDeviceVolumeAndBrightnessTargetViewContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 96EE49EF423A9A2EAB54C594582C507C /* SJDeviceVolumeAndBrightnessTargetViewContext.m */; }; + C1B1B399D39A504F6640D5D217D30C16 /* SJGestureControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 797E28B29DC6C5A4F1F15E4C5C4BFCA9 /* SJGestureControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2AF0D1706BA2A3DCCC65A2ED97BF8EE /* SJDeviceVolumeAndBrightness.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A359D215CC856A244332ECD3B0AD6B6 /* SJDeviceVolumeAndBrightness.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C2F97D50C61C66DB0E49F5C4BF96E1AF /* SJSQLite3+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 849BCD288A344B4FFAE4C5027CB95504 /* SJSQLite3+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C400A6E874AD3C748EAFA1C5B751DB91 /* SJVideoDefinitionSwitchingInfo+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B02205DFE1F28ABCB9C0E4F2B216BB66 /* SJVideoDefinitionSwitchingInfo+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C43239E3064C7665EEE1ECE5E7835791 /* SJFitOnScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FD0D73171416C9959E49804A2181252 /* SJFitOnScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C5422310627E5E23BE869CC20A4D9F57 /* SJPromptingPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AA8E75B73FC427FF0ABE33E9F344B5C /* SJPromptingPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C646689217979041815554BBAAD97AF7 /* SJApplicationObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = D6EB940B3C99A9EB373C55995D3FAFF2 /* SJApplicationObservation.m */; }; + C78CC054D22F6A5C87C6254A4CE2B8CE /* SJAVPlayerItemObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = 424D3C6A282FF5F69F1EB421266631E2 /* SJAVPlayerItemObservation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C84D460BF2C604CDDB7D60B4340AC68E /* SJFlipTransitionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FAE6B4265FFB3A861C37654D978548AB /* SJFlipTransitionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA5AF027D20059053C04CFE463B98362 /* SJSQLite3TableInfoCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 875EDA42BE0BCF5A8515B14E762CA75E /* SJSQLite3TableInfoCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA825C14F4EEE52FADC0C70F98351224 /* SJPictureInPictureControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D2179412E0533E4E0187EF4B92C38520 /* SJPictureInPictureControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA8FBC507E99845D429DC8CD0E9B9C90 /* SJPlayerAutoplayConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 2591F154ADE462E8A35AE9DFF3FD7485 /* SJPlayerAutoplayConfig.m */; }; + CB3C4B0CEF443FFC863C683CE3598830 /* YYModel-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E37824179AEEA19101A4152F4719215B /* YYModel-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; CB496E705201A627FF1CC19450A1AE95 /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B9934A2D56385D91B0727AB5C0EFA09 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CDD95DF1FFFA473ADD1D1A5A39560F74 /* SJVideoDefinitionSwitchingInfo+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9966E2A873369526C0594DD48CD4F5CC /* SJVideoDefinitionSwitchingInfo+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE0860D94D28CD8C30B2051F84C63EBE /* SJUTUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = F3278F912AFF535DD8A8EA613BE321A4 /* SJUTUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFA781D1FE4E521053FD85F3937974ED /* SJDeviceVolumeAndBrightnessController.h in Headers */ = {isa = PBXBuildFile; fileRef = D693E641A9CC35F6089F9844B211095D /* SJDeviceVolumeAndBrightnessController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC970E6C6FCEC76D31237212CAB15C94 /* SJPlayModel.h in Headers */ = {isa = PBXBuildFile; fileRef = B7A773B2A95E6B4B69A95E5BAD89BF61 /* SJPlayModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD2DFEC86CA42110FF7DF9CB5E35B505 /* SJDeviceVolumeAndBrightnessController.h in Headers */ = {isa = PBXBuildFile; fileRef = 55DA12C1F4F4C6061C6021DB546EE216 /* SJDeviceVolumeAndBrightnessController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDECBB5F191834966AFF2EF401A49248 /* SJPlaybackObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = DE7A0C203C6147F2CFCD4EE54C5E97BF /* SJPlaybackObservation.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0AF327B7104EB47E23BCEF2DA31ED47 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E364C20E69338C598B56C8FBCE37445B /* ViewController+MASAdditions.m */; }; - D1BEB178AEC5CCE4A551169814AA7364 /* SJVideoPlayerRegistrar.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932B6D8CA20F25E0FC582A1FD9D678B /* SJVideoPlayerRegistrar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D20D5D0FD5D1F6222CEC27B79D9F5360 /* SJPlaybackObservation.m in Sources */ = {isa = PBXBuildFile; fileRef = F92405BCF5D46F63CF0F787E25644DE3 /* SJPlaybackObservation.m */; }; - D226EA1C96A8459EBD20D5B95E862AC1 /* YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD9719531179C6C93D48E6AAEB8B471 /* YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D22F272D35C1FE16BADBB5EFFB602E41 /* SJAVPictureInPictureController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F556E235ED0FE083CB101134FD148BE /* SJAVPictureInPictureController.m */; }; - D684C420523BBD7964F914E69EE6276A /* SJSQLite3ColumnOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A287CA49713CCE45F6BA4C90D2A4AC5 /* SJSQLite3ColumnOrder.m */; }; - D772ACA5C0A70A4396B6EB8C33384A2E /* SJWatermarkView.h in Headers */ = {isa = PBXBuildFile; fileRef = 65753E74F929AF6EB8ABEA4BBE6E97DD /* SJWatermarkView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7AC50DCCEB34BAA0123F35D90B04CA7 /* SJControlLayerAppearStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AB957A3BD0D917EAA17F0989BF7D5E98 /* SJControlLayerAppearStateManager.m */; }; - DB05DD98E56D6FE70ECDEBF66E5366AE /* SJPlaybackRecordSaveHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 12EFEBC3BDA6B8C8906F8D37872449A4 /* SJPlaybackRecordSaveHandler.m */; }; - DC0869DCA0281AEBD2633E400DF8E7B4 /* SJSQLite3+FoundationExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 4667FD2126EC3C2F44805CFCB3B7E9F2 /* SJSQLite3+FoundationExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCD968E7177B5436E304D6D2FF485077 /* SJSubtitleItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A84802646921D346EAA0AFDE332FF649 /* SJSubtitleItem.m */; }; - DCE16C2FC0AF6C4FE57EA0C53B52B517 /* NSAttributedString+SJMake.m in Sources */ = {isa = PBXBuildFile; fileRef = D25B2D8099B31BC055BC82298FBF2091 /* NSAttributedString+SJMake.m */; }; - DE5CF4C7F5ADCD8F5B31A4975C952B85 /* SJPromptingPopupController.h in Headers */ = {isa = PBXBuildFile; fileRef = 374E3A8AEA5F6583C19D570421859894 /* SJPromptingPopupController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE623FFF2781576C5359E35A2D4E4877 /* SJDeviceVolumeAndBrightness.m in Sources */ = {isa = PBXBuildFile; fileRef = B94796BF038883F0881F5292805E6AF4 /* SJDeviceVolumeAndBrightness.m */; }; - E011624745574D629DFEE0C1CEC6BD35 /* SJPlayModel.h in Headers */ = {isa = PBXBuildFile; fileRef = AD4C0AD9F4ED7AF16EC8FB13C6E0D2B3 /* SJPlayModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0E669CEB875D78B121C346F971BCB6D /* SJRunLoopTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CC20B9E78043975D22417110E92D99ED /* SJRunLoopTaskQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E2C6B273612461D60B143BD2F3ADB981 /* NSObject+SJObserverHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 253E7AB458697BF77762C5107AF005F3 /* NSObject+SJObserverHelper.m */; }; - E3408E2CA6F5200BC151F80D853C3E1E /* SJPresentationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C9C7D16213697ACF2A56477D23C8B3 /* SJPresentationQueue.m */; }; - E5066C92894EF71308FAE06D953ED2AA /* SJPlayerViewInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C4CBE8E8754D919561C54EC03B40F69F /* SJPlayerViewInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E735CB21D98F8FCD4FA2DB12C30E8BFD /* SJUTAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 63263AC833A62C72C63BC363B48F7216 /* SJUTAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E78EB399152923F35CD51A75A10DB524 /* SJRotationFullscreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E55A391994DEE4D0F4DA12DDCCBB8049 /* SJRotationFullscreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E88E6E9B37EAD287C2CF9ACC24EF1CD5 /* SJSQLite3ColumnOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A9E9FCE34F1B3200D04ACB419B8E5A /* SJSQLite3ColumnOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E89B906706A11DFE0B818995F1A3D8C6 /* SJAVMediaPlayerLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C87431A3745F63B652B5B589BE26727 /* SJAVMediaPlayerLoader.m */; }; - EA1EEF283E7B3D486D7BA6C19B0EB8D1 /* SJRotationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C672D2366E08B038CCA223FF43704863 /* SJRotationManager.m */; }; - EB78C2AAA4BFF2538D1535664881787D /* SJSQLiteErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = 5230E94FA331835220956A04BE4361D7 /* SJSQLiteErrors.m */; }; - EC119BF72219A37F3E8362EFECC3F1A2 /* SJVideoPlayerPresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D0C42DCDB8F66C1079183C6E355D885 /* SJVideoPlayerPresentView.m */; }; - EC8FFE6B84F897119E5991BFD090B1C0 /* SJSQLite3Condition.m in Sources */ = {isa = PBXBuildFile; fileRef = 173DC0E01D296C96B6BD0A953C3A92CF /* SJSQLite3Condition.m */; }; - ECEE214F8C3BA47E28F6DC36A6994FC8 /* NSTimer+SJAssetAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 61674038137C45952C08380E31F1C257 /* NSTimer+SJAssetAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ED4BD870B9572E246DDAE525C5C934CD /* NSObject+YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 611F80D03BBBDF1A3A4D951ECC24A239 /* NSObject+YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE9D68C3358FCE417D0499DFBD14590B /* SJSQLiteTableModelConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = EF0E4781977790F5F94C8F78CEBE5774 /* SJSQLiteTableModelConstraints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3DE4CFD9EA614DA7D4A7EB3DB22CC01 /* SJFitOnScreenManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 062CAAE95D4BFEB160585FDE525CFC7F /* SJFitOnScreenManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F4B8EB6947BB907D0A7C9D6CC6EE6D58 /* SJSQLite3+RemoveExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A52CA5F5F144DFE6FE43FE8DA00B366 /* SJSQLite3+RemoveExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F6F85B4651679644A18731A575F4BB32 /* SJPlaybackHistoryController.h in Headers */ = {isa = PBXBuildFile; fileRef = 58B879742C193537E8B61DF29E943874 /* SJPlaybackHistoryController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8496C3F0EDFD1B063869FC23425844B /* SJRotationFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = AB740CBCA55491A5B31AD21CCCEA576D /* SJRotationFullscreenWindow.m */; }; - F88E43518AE4A362400E9C7587A72CEF /* SJPromptingPopupControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2632618F3107138BF09BC7D1566C3C /* SJPromptingPopupControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F920324BBE846E3EDD03B53AAAA876F7 /* UIScrollView+ListViewAutoplaySJAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = AF6ED2593E27C94518218A3316B4B402 /* UIScrollView+ListViewAutoplaySJAdd.m */; }; - FA779E2807458CEA57A53DF27EBAFF07 /* SJDeviceVolumeAndBrightnessController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B499B6FEEBAFA00490B31DF504838B1 /* SJDeviceVolumeAndBrightnessController.m */; }; - FF32674F344F45AFC4DE4EA7D5E64BEC /* SJAttributesRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE9707589D128D4F9330D44C0214686 /* SJAttributesRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF759646E77BCDF4221C6FE84ACC5794 /* YYClassInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 75EBAE83AB0DADD176AD120E6439965C /* YYClassInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3C7167D0458ED08D27C642ABC1103E4 /* SJRotationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 19B012E1E58EF0C4C2939522D6F0B2DC /* SJRotationManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D3D1FDA9C52D0FABEFEA61B7BA58ED83 /* SJViewControllerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C5BE8C0400B0FF4CEEB02EFCCC130BD3 /* SJViewControllerManager.m */; }; + D44250E7E98A0676DF8E62665F58D7D5 /* SJSQLite3+QueryExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 41FD592DB8D354F4D221B5429D3929F4 /* SJSQLite3+QueryExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5330E548B9E5EDF732700D54B552D83 /* SJAttributeWorker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F6B80BCC0CACC3B38EB1D38413B817E /* SJAttributeWorker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5551C1C803FAE08CEDFA33CF2DBFAA8 /* SJAVMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D1413ED7045603EE22E921FD4EDD49 /* SJAVMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5C922CD1FCC8DF32D173E2FC5D8CCF9 /* SJAVPlayerObservation.h in Headers */ = {isa = PBXBuildFile; fileRef = FFE9F5AE5AC1AA64365C93E04A03DDDB /* SJAVPlayerObservation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D6417341352405B571B8121AC6484358 /* SJDanmakuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C7DCA5C326F4334001321A75CF8748E6 /* SJDanmakuItem.m */; }; + D6B6288E9486D4BE8A5A0A72A6E509E1 /* SJSmallViewFloatingControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B22452A4C11664D5632B5FAE1120312 /* SJSmallViewFloatingControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8199DF1273721E5115A6FB18A82E84B /* SJUTAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 63263AC833A62C72C63BC363B48F7216 /* SJUTAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D8338A17C4730A4DD394714216C9914A /* SJAVMediaPlayerLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 64827A691C9227E56C62FF717A42D96B /* SJAVMediaPlayerLoader.m */; }; + D83F38ED02271807B37B66EF2832EA32 /* SJQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 14604A6772FE91BE2E0EE59C26FC56A7 /* SJQueue.m */; }; + D9031EDAD7F074F66D4DAE89B0A15FBC /* SJVideoPlayerRegistrar.m in Sources */ = {isa = PBXBuildFile; fileRef = 54CC0046369C3E045FAC81D630086B01 /* SJVideoPlayerRegistrar.m */; }; + DAEA562E7035610910AC9A0F40D8A960 /* SJDeviceVolumeAndBrightness.m in Sources */ = {isa = PBXBuildFile; fileRef = 8199DE8BD65D8D1C8838A09D048FAC7A /* SJDeviceVolumeAndBrightness.m */; }; + DAFA6B4C4ACD01419341B89208571834 /* SJSQLite3+RemoveExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = B39EC7893B4071DB4D05B00CF497F28B /* SJSQLite3+RemoveExtended.m */; }; + DC3ED6CD7CD9D14DEFE4B09D81C50276 /* SJSQLite3.h in Headers */ = {isa = PBXBuildFile; fileRef = AD6423FECBE8862009612DF8EE1DCD11 /* SJSQLite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC7CCADEB5C738F56A488C4573A2AC0F /* SJSQLite3+RemoveExtended.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A52CA5F5F144DFE6FE43FE8DA00B366 /* SJSQLite3+RemoveExtended.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC8EDB60EB7EC318C1650B8A7D88AA44 /* SJVideoDefinitionSwitchingInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = FDD7CA3D86AFE228964B2448ABFA3366 /* SJVideoDefinitionSwitchingInfo.m */; }; + DC9AAD1C71CAC88157C9092B4C5FDCFE /* SJTimerControl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA78A2C67837196810BBBB3170651FE9 /* SJTimerControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE08BE8FE04A46E584D249FD063DE2C7 /* SJUTRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = F0B2642E292D48B13F02E4DCB5946A8F /* SJUTRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE12D9A0711222B3B1F28ABACEF3CCAC /* SJPlaybackRecordSaveHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 12EFEBC3BDA6B8C8906F8D37872449A4 /* SJPlaybackRecordSaveHandler.m */; }; + DE5773041CF8FF87AE164D62F1F66986 /* SJPlaybackHistoryController.m in Sources */ = {isa = PBXBuildFile; fileRef = 98AED38B618439CF30BF100A17906E63 /* SJPlaybackHistoryController.m */; }; + DEC1C5C14184F9B59604B825E5C4344D /* SJPlayerViewInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B9E00F23A1A10EA3A8B5565F8E334C3 /* SJPlayerViewInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E123D34744F8417C1CB22633E4DF1741 /* UIScrollView+ListViewAutoplaySJAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 497BE8CDA8792D74BBDBFBD75C3E4221 /* UIScrollView+ListViewAutoplaySJAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E16A54D23A629EF43DCC821C01955B18 /* SJUIKitTextMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = CE35AB1102F8410DBD57519CE1D33145 /* SJUIKitTextMaker.m */; }; + E2B4E608F687AFF8A3E56CA58CA14118 /* SJRotationFullscreenNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = D395C19E02BDE917DE85F9655014FFB2 /* SJRotationFullscreenNavigationController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3D797FA48E86FDEBFD2E170614B9D1C /* SJSQLiteObjectInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B677DB17831B788FAADC932BF6EC1BBC /* SJSQLiteObjectInfo.m */; }; + E5C7FEEB2E207D0FDB9FA8881E633200 /* SJPlayModel+SJPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C553C014E7CCAB2CE2656D0B9CE8D965 /* SJPlayModel+SJPrivate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6ADFB18DD69729CACF21724CE944A9A /* SJBaseVideoPlayer+TestLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F55E1FF2CFE4FCC6D52EC8D224522AF7 /* SJBaseVideoPlayer+TestLog.m */; }; + E6D53DC8FB5F66FB26119A89A2A0AD1E /* SJAttributesRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE9707589D128D4F9330D44C0214686 /* SJAttributesRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E8172FD6FDF825F110FC6FDB5C4C188C /* SJVideoPlayerURLAssetPrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = C469F782FEF31C5AE5C987FE9A7B52F0 /* SJVideoPlayerURLAssetPrefetcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E84D15B3667634F52739081C2D799CC0 /* YYModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FD9719531179C6C93D48E6AAEB8B471 /* YYModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E9095EA624F6552D6D17E6BE23886F0B /* SJWatermarkView.h in Headers */ = {isa = PBXBuildFile; fileRef = B764030BF63F5D460E42D9FBFF2D23BF /* SJWatermarkView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EBEFA4CF576D72B624F5C49A24E2356B /* SJUTUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0843532A269B016674A5BBAA8A6E13F4 /* SJUTUtils.m */; }; + EC56F3FCD0D131B5E7073899376B1731 /* SJUTRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CD1C32B06B928AFE2F63377D39E56F /* SJUTRecorder.m */; }; + ECA8DD983F50A8C89714227B81206829 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = C14717CA1B93E1BA3E74620CF7CE882F /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED466A7C9B4FAC294EC18D677880B7EE /* CALayer+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = B9E3AACF6443EE36C1388CFEF2D799EF /* CALayer+SJBaseVideoPlayerExtended.m */; }; + ED826EFA7B81D6757BF2857016E1DB11 /* SJTextPopupController.m in Sources */ = {isa = PBXBuildFile; fileRef = C2173F7D0C04B7405C0D9CA48DAFD797 /* SJTextPopupController.m */; }; + EEC5ECC0489A639104A72E5722A26E1F /* SJControlLayerAppearStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9629790595A2FCFE9B5F910CFEA15DCC /* SJControlLayerAppearStateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFB17F0F5714B5FD4C2EEC51D9F47291 /* SJVideoPlayerControlLayerProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = AF8BB212177B078CA500723389D7DB6B /* SJVideoPlayerControlLayerProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0A42E3A458D39F56166818C3E4CBE9B /* SJVideoPlayerPlaybackControllerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = FAC912EDD2B861265B0AD7B223BDB51D /* SJVideoPlayerPlaybackControllerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1179DA35940CCDD33D64CC3EC1A9673 /* UIScrollView+SJBaseVideoPlayerExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = C3AF6585A5F499E6395581E125805470 /* UIScrollView+SJBaseVideoPlayerExtended.m */; }; + F435B9B997F0711078586E9FE02BEF8E /* SJFlipTransitionManagerDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CC44FEF43ABA855702DB049BE3A0EDF /* SJFlipTransitionManagerDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F612FBBEDAB6DB620657879678A2DE79 /* SJSQLite3ColumnOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A9E9FCE34F1B3200D04ACB419B8E5A /* SJSQLite3ColumnOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F672A4B8C9E6352084A075CB9F4DA0DA /* SJTimerControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B5EFD034CD1C337876392815798D36B /* SJTimerControl.m */; }; + F7284034679F215683A5D08AA12B3667 /* SJSQLiteTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E51943320BDF6ECA6CB48BC481398883 /* SJSQLiteTableInfo.m */; }; + F7B1F7F7183C88F312485C76BFCCAE6B /* SJVideoPlayerURLAssetPrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D674E5047308BFB5BE81B70B05849A9 /* SJVideoPlayerURLAssetPrefetcher.m */; }; + F9A409406BB6631E8AEA62F70EE66813 /* SJSQLite3Condition.m in Sources */ = {isa = PBXBuildFile; fileRef = 173DC0E01D296C96B6BD0A953C3A92CF /* SJSQLite3Condition.m */; }; + FBEA3A422B03003F075EDC6930C5ECC0 /* SJRotationFullscreenNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 39376A4FE2B989A8612A6BB7AECAB2FA /* SJRotationFullscreenNavigationController.m */; }; + FC8904F38FA7F0CDFEF982063A3568A3 /* SJSubtitleItem.m in Sources */ = {isa = PBXBuildFile; fileRef = BA3280EAF39CA5245726BD4ADADC59E6 /* SJSubtitleItem.m */; }; + FD867C34EBD543295D6559A8BA7B0E2E /* SJSQLite3+QueryExtended.m in Sources */ = {isa = PBXBuildFile; fileRef = FAF560C11B4ECE5AD7F14E7623FBE29E /* SJSQLite3+QueryExtended.m */; }; + FE852A5AAB1B2FB9933D40BAF8CBA15C /* SJPlayerAutoplayConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 72173FF949925A685C747FB5182F7AB9 /* SJPlayerAutoplayConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FED067784FDF6914FEE2C77EA2D3F674 /* SJSQLiteCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F9461DEB390D6705832A281E7917824 /* SJSQLiteCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF435A3A368A363C770E33571A63B8D9 /* NSTimer+SJAssetAdd.m in Sources */ = {isa = PBXBuildFile; fileRef = 169225E7FD1129E5DF4B6995B2F1F821 /* NSTimer+SJAssetAdd.m */; }; + FF4EE142784A1EC323DAC185E36E8035 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 2BD07D731762A4F301AA8592B9593876 /* PBXContainerItemProxy */ = { + 07937A642D35DC6D2341DA61BF15C2AD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; + remoteInfo = Masonry; + }; + 1913089E31D08CD2CF8667E5321B8BED /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; remoteInfo = YYModel; }; - 2C5FD23EE7B835DBBE4507B574EAC949 /* PBXContainerItemProxy */ = { + 60638268C36FDCB47BD538F6F9F16C72 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; remoteInfo = Masonry; }; - 9101822D13184B97F2EBF580ACB1FD91 /* PBXContainerItemProxy */ = { + 6E67B2027549E3EB870FAE778B8BD3A8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 76A445C38D13436849B0EAD21F555034; remoteInfo = SJBaseVideoPlayer; }; - A62ADF9993080A4493C86CE1AF99CAF8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 55AF53E6C77A10ED4985E04D74A8878E; - remoteInfo = Masonry; - }; - D00BB6F7DFA23B4836CE23AC5E1DE0D4 /* PBXContainerItemProxy */ = { + AE450E4C7509D9D73E6CD91D17F308D1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 66EF777DAC384165A40F94DC7D0BD98F; remoteInfo = SJUIKit; }; - FA91BC0EC0182EA003863CA5CDA0FECF /* PBXContainerItemProxy */ = { + B117892DB7D2745226DCE67FE8F7858C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84B44807A12996D487A4A591A481D6A0; remoteInfo = YYModel; }; - FC4944E7EAE259D663C699C72DADCAF2 /* PBXContainerItemProxy */ = { + F28C5CDA6CA5F834300114E3825D95A1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -312,286 +318,292 @@ /* Begin PBXFileReference section */ 009EE0D823CF1898E0B38DD50FD80A1F /* Pods-Project-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Project-acknowledgements.plist"; sourceTree = ""; }; - 00A79B73AB2D4E1405F7DC486710E7B8 /* SJPlaybackHistoryController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackHistoryController.m; sourceTree = ""; }; 00D09DDDAF126EFF2038BFDFD301E1E1 /* SJAttributeWorker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJAttributeWorker.m; path = SJUIKit/AttributesFactory/Deprecated/SJAttributeWorker.m; sourceTree = ""; }; 016E8F1101A9C827C8DA31BE9387143B /* Pods-Project.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Project.modulemap"; sourceTree = ""; }; - 01B29247C32FDC274F480DF74FA8EDB0 /* SJVideoDefinitionSwitchingInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoDefinitionSwitchingInfo.m; sourceTree = ""; }; 01E8C936C01682A9CA8C2DADFD9E27EB /* SJBaseVideoPlayer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SJBaseVideoPlayer-Info.plist"; sourceTree = ""; }; - 023A57CEC1A94B57368BD08F6E3DE78C /* NSString+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; - 03705B4A0D3B16454E5AFE377557CC02 /* SJRotationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager.h; sourceTree = ""; }; - 062CAAE95D4BFEB160585FDE525CFC7F /* SJFitOnScreenManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFitOnScreenManagerDefines.h; sourceTree = ""; }; - 06FDF4A3A409E2522FB7C4C92FFE2CD6 /* SJReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJReachability.m; sourceTree = ""; }; - 07E53E29BF0250D227ABDADC2EB1BCB1 /* SJRotationManager_iOS_16_Later.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager_iOS_16_Later.h; sourceTree = ""; }; - 083DBFBA96D50921D81E99BFB48A065A /* SJAVMediaPlayerLayerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayerLayerView.h; sourceTree = ""; }; 0843532A269B016674A5BBAA8A6E13F4 /* SJUTUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUTUtils.m; path = SJUIKit/AttributesFactory/UIKitText/SJUTUtils.m; sourceTree = ""; }; - 08F6FA93FB93ECCBDB4120EA034DFBB7 /* NSTimer+SJAssetAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+SJAssetAdd.m"; sourceTree = ""; }; + 08F58C8CF6BC59F7A967808D6BD44B7A /* SJRotationDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationDefines.h; sourceTree = ""; }; 0A52E11AFB1B42072408ED6EE7009540 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASShorthandAdditions.h"; path = "Masonry/NSArray+MASShorthandAdditions.h"; sourceTree = ""; }; - 0B1F62BF796E63D386CD8233662C4E5A /* SJBaseVideoPlayerConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJBaseVideoPlayerConst.h; sourceTree = ""; }; - 0CBB92B9BF0462800B5DD1E1B5F02C2E /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoPlayerURLAsset+SJSubtitlesAdd.h"; sourceTree = ""; }; - 0D134099B291B86E3306A1CAD2A17334 /* NSString+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + 0B5EFD034CD1C337876392815798D36B /* SJTimerControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJTimerControl.m; sourceTree = ""; }; + 0CC44FEF43ABA855702DB049BE3A0EDF /* SJFlipTransitionManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFlipTransitionManagerDefines.h; sourceTree = ""; }; + 0CF881AFA1A55A929182A1E6899241A2 /* SJControlLayerAppearManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJControlLayerAppearManagerDefines.h; sourceTree = ""; }; 0F0D5BB2456E6020E5E42354F53BA503 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; - 10B806CDC553592F9D291FC6CBEE5344 /* SJVideoPlayerPresentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPresentView.h; sourceTree = ""; }; + 0FB5B16199FF5701CCADEED93AC7477E /* SJDeviceVolumeAndBrightnessController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightnessController.m; sourceTree = ""; }; + 10F76CBFE32CBB1DF401C5A1FC827327 /* SJPlayModelPropertiesObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayModelPropertiesObserver.h; sourceTree = ""; }; 1146B426E4C14B191518E883EC18BFAA /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = ""; }; 11E4EB08B463FDFDC3B011518D226696 /* Pods-Project.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Project.debug.xcconfig"; sourceTree = ""; }; + 12E35798468478FAC0E4F04976C8284D /* SJRotationFullscreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenViewController.h; sourceTree = ""; }; 12EFEBC3BDA6B8C8906F8D37872449A4 /* SJPlaybackRecordSaveHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJPlaybackRecordSaveHandler.m; path = SJBaseVideoPlayer/SJPlaybackRecordSaveHandler.m; sourceTree = ""; }; 1364B452B6B2AA200C207D6F0D38DDD5 /* SJSQLiteColumnInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteColumnInfo.h; path = SJUIKit/SQLite3/Core/SJSQLiteColumnInfo.h; sourceTree = ""; }; 13F493264278AF5D15CAC411965168DC /* SJSQLite3+TableExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJSQLite3+TableExtended.h"; path = "SJUIKit/SQLite3/SJSQLite3+TableExtended.h"; sourceTree = ""; }; 14604A6772FE91BE2E0EE59C26FC56A7 /* SJQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJQueue.m; path = SJUIKit/Queues/SJQueue.m; sourceTree = ""; }; - 15B2C084A9E285A1830C1A73989EE273 /* SJPlayModelPropertiesObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayModelPropertiesObserver.h; sourceTree = ""; }; + 15B8218B65CD78111082C5DCE29C9FD7 /* SJVideoPlayerPlayStatusDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPlayStatusDefines.h; sourceTree = ""; }; 15C9C7D16213697ACF2A56477D23C8B3 /* SJPresentationQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJPresentationQueue.m; path = SJUIKit/Queues/SJPresentationQueue.m; sourceTree = ""; }; + 169225E7FD1129E5DF4B6995B2F1F821 /* NSTimer+SJAssetAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+SJAssetAdd.m"; sourceTree = ""; }; + 16BDC69A2EA4B2E3110FE746832FE2C5 /* SJVideoPlayerRegistrar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerRegistrar.h; sourceTree = ""; }; 173DC0E01D296C96B6BD0A953C3A92CF /* SJSQLite3Condition.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3Condition.m; path = SJUIKit/SQLite3/Core/SJSQLite3Condition.m; sourceTree = ""; }; - 17F694EB0B1BBBC5C523DC23383854A8 /* SJWatermarkView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJWatermarkView.m; sourceTree = ""; }; - 18CAD14ECCC9ABBA53F7A18DE3563648 /* SJSubtitlePopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSubtitlePopupController.m; sourceTree = ""; }; - 1A4FF4BE8A81021372395D37773D9D14 /* SJVideoPlayerPlayStatusDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPlayStatusDefines.h; sourceTree = ""; }; - 1CDA4B2240AFD389F9964535EF09FC0B /* SJDeviceVolumeAndBrightnessTargetViewContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessTargetViewContext.h; sourceTree = ""; }; + 19B012E1E58EF0C4C2939522D6F0B2DC /* SJRotationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager.h; sourceTree = ""; }; + 1B9E00F23A1A10EA3A8B5565F8E334C3 /* SJPlayerViewInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerViewInternal.h; sourceTree = ""; }; 1CF4816F02D96B83A52072B962145129 /* NSObject+YYModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYModel.m"; path = "YYModel/NSObject+YYModel.m"; sourceTree = ""; }; - 1D0C42DCDB8F66C1079183C6E355D885 /* SJVideoPlayerPresentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerPresentView.m; sourceTree = ""; }; 1D5010E7485064202422874E20EF8690 /* Pods-Project-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Project-resources.sh"; sourceTree = ""; }; - 1DBC71EB26548876207B11F415F9A04C /* UIViewController+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIViewController+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; - 1E6E2A54CA9C75B96A6957D94D758B0F /* SJReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJReachability.h; sourceTree = ""; }; + 1D7683374B393C17D9BEE7736A24AC7F /* SJAVMediaPlayerLayerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayerLayerView.m; sourceTree = ""; }; + 1F1319F5927523156CD37BC4EE404457 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJVideoPlayerURLAsset+SJSubtitlesAdd.m"; sourceTree = ""; }; 1FD9719531179C6C93D48E6AAEB8B471 /* YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYModel.h; path = YYModel/YYModel.h; sourceTree = ""; }; 1FFED36A657123030ABB700256D73F15 /* Masonry */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Masonry; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 210E56DF59FD53563746CBF0BF5DF211 /* SJPlaybackRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackRecord.h; sourceTree = ""; }; + 213FFEDA45ADB681ACCD50CCFDE6C443 /* SJDeviceVolumeAndBrightnessControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessControllerDefines.h; sourceTree = ""; }; 21B36C58B63F486BEB91CAFE492C84F8 /* SJUIKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SJUIKit; path = SJUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 21B5DCCD5475C74076684366DEDC04A7 /* SJTaskQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJTaskQueue.m; path = SJUIKit/Queues/SJTaskQueue.m; sourceTree = ""; }; 227C2756E3B3D7F47655412663ACFBC0 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = ""; }; + 22937F2920214939877BB29E65D3C0C4 /* SJVideoPlayerPresentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerPresentView.m; sourceTree = ""; }; + 2304ABA3EA3ACA99AEA7F457C24E28D2 /* NSString+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + 23267307B267DFEA9225F6ED36C9128A /* SJVideoPlayerPresentViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPresentViewDefines.h; sourceTree = ""; }; 2354413BAE1797B6BE01C95A42B4E92B /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = ""; }; 244DAD424FF523B10A8897572E05EA8D /* SJSQLite3+FoundationExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SJSQLite3+FoundationExtended.m"; path = "SJUIKit/SQLite3/SJSQLite3+FoundationExtended.m"; sourceTree = ""; }; 24C03E903621532CCD14776C3AD7B54F /* SJSQLiteColumnInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteColumnInfo.m; path = SJUIKit/SQLite3/Core/SJSQLiteColumnInfo.m; sourceTree = ""; }; 253E7AB458697BF77762C5107AF005F3 /* NSObject+SJObserverHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+SJObserverHelper.m"; path = "SJUIKit/ObserverHelper/NSObject+SJObserverHelper.m"; sourceTree = ""; }; + 2591F154ADE462E8A35AE9DFF3FD7485 /* SJPlayerAutoplayConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayerAutoplayConfig.m; sourceTree = ""; }; 27EBDFCDE430370FF4998B008929AD30 /* SJSQLite3TableClassCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3TableClassCache.h; path = SJUIKit/SQLite3/Core/SJSQLite3TableClassCache.h; sourceTree = ""; }; - 294017786F26EB778F939EEC97A0E1D9 /* SJRotationFullscreenNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenNavigationController.h; sourceTree = ""; }; - 29D6C77207F9BEB4E7C1E5CF5B7AA6E9 /* SJTextPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTextPopupControllerDefines.h; sourceTree = ""; }; + 28F63464CF108E64695D4D35F3472716 /* SJDanmakuItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuItem.h; sourceTree = ""; }; 2A9AEA55B85EBB2EE44094D447FFBFC7 /* SJBaseVideoPlayer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SJBaseVideoPlayer.release.xcconfig; sourceTree = ""; }; 2B9934A2D56385D91B0727AB5C0EFA09 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = ""; }; - 2C94ADEACD086F45D65E8CA1E14A632F /* SJDanmakuPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDanmakuPopupController.m; sourceTree = ""; }; - 2F556E235ED0FE083CB101134FD148BE /* SJAVPictureInPictureController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVPictureInPictureController.m; sourceTree = ""; }; - 3119258F47936ADC956B495EFB972F1D /* SJAVMediaPlaybackController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJAVMediaPlaybackController.m; path = SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m; sourceTree = ""; }; 31C48D0D9441757522AC91B9D4B1A095 /* SJUIKitTextMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUIKitTextMaker.h; path = SJUIKit/AttributesFactory/UIKitText/SJUIKitTextMaker.h; sourceTree = ""; }; - 32786A84ACD7FA9859896EC93857A821 /* SJTimerControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJTimerControl.m; sourceTree = ""; }; - 348E312BCC4577736B20AF91D9847CB1 /* SJBaseVideoPlayerConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJBaseVideoPlayerConst.m; sourceTree = ""; }; - 3521598902123ACB9C657CC8D2084479 /* SJDeviceVolumeAndBrightness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightness.h; sourceTree = ""; }; + 32633C2B6F243EA4912EBFDE6BA42EEE /* NSTimer+SJAssetAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSTimer+SJAssetAdd.h"; sourceTree = ""; }; 357C7AA3240F90DD06B4DA283008780F /* SJUIKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJUIKit-prefix.pch"; sourceTree = ""; }; - 36755B0356F06D84B7C76D51A28F982C /* SJRotationManagerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManagerInternal.h; sourceTree = ""; }; 3690A5BEC7A02E728BEF6FFC5534F954 /* SJBaseVideoPlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJBaseVideoPlayer.m; path = SJBaseVideoPlayer/SJBaseVideoPlayer.m; sourceTree = ""; }; - 374E3A8AEA5F6583C19D570421859894 /* SJPromptingPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPromptingPopupController.h; sourceTree = ""; }; 37A6AAE85FB394F9FDA5C68D8481D44C /* YYModel-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "YYModel-Info.plist"; sourceTree = ""; }; 37C6D50EF68993B5AE410ECCFAE117F9 /* YYModel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.debug.xcconfig; sourceTree = ""; }; + 37F41FBE5D7BF47F4AF34E33869A5CCE /* UIViewController+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; 37F926D207DB72C68184F6B4A0D2B72B /* SJUTRangeHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUTRangeHandler.h; path = SJUIKit/AttributesFactory/UIKitText/SJUTRangeHandler.h; sourceTree = ""; }; 37FA2CC5391E1250E2468E61B005FACB /* Pods-Project.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Project.release.xcconfig"; sourceTree = ""; }; 387A6B17EF03AFA94E1E503A47D47225 /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MASConstraint+Private.h"; path = "Masonry/MASConstraint+Private.h"; sourceTree = ""; }; - 39DC0326667CD2D536F58954559D6A53 /* SJControlLayerAppearManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJControlLayerAppearManagerDefines.h; sourceTree = ""; }; + 39376A4FE2B989A8612A6BB7AECAB2FA /* SJRotationFullscreenNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenNavigationController.m; sourceTree = ""; }; + 39C49045B8B4DC8462967DA12292CC83 /* SJPlayModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayModel.m; sourceTree = ""; }; 3A287CA49713CCE45F6BA4C90D2A4AC5 /* SJSQLite3ColumnOrder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3ColumnOrder.m; path = SJUIKit/SQLite3/Core/SJSQLite3ColumnOrder.m; sourceTree = ""; }; 3A52CA5F5F144DFE6FE43FE8DA00B366 /* SJSQLite3+RemoveExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJSQLite3+RemoveExtended.h"; path = "SJUIKit/SQLite3/SJSQLite3+RemoveExtended.h"; sourceTree = ""; }; 3AB1E81F031EF5E263FBE28E223B3E45 /* YYModel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = YYModel.release.xcconfig; sourceTree = ""; }; 3B6477B443DF9EB7EEF5D4121E749C78 /* SJBaseVideoPlayerResourceLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJBaseVideoPlayerResourceLoader.m; path = SJBaseVideoPlayer/ResourceLoader/SJBaseVideoPlayerResourceLoader.m; sourceTree = ""; }; - 3B929DEE463CC0FD5A31446DE540B805 /* SJPlayerAutoplayConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerAutoplayConfig.h; sourceTree = ""; }; 3BA38567F0BD4AF77BA843931BFDB627 /* Masonry-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-umbrella.h"; sourceTree = ""; }; - 3C56753EC5085EEE4E5781D5256B4227 /* SJRotationObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationObserver.h; sourceTree = ""; }; 3C85DE61EF71799C3926F7B54F03C55B /* NSObject+SJObserverHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+SJObserverHelper.h"; path = "SJUIKit/ObserverHelper/NSObject+SJObserverHelper.h"; sourceTree = ""; }; - 3D1006A1F1C4EA1B5CE4FFEC7824F938 /* SJPlaybackHistoryControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackHistoryControllerDefines.h; sourceTree = ""; }; 3D8C7C9D28F786ACFAF8EB3F2E99AE91 /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = ""; }; + 4085761BE09A904E070261EB37C5CA86 /* SJRotationManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManagerDefines.h; sourceTree = ""; }; 412AC61BC73BC86368F9A49B5FD446A1 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = ""; }; + 4157D2F736FBB34E05D356CA5979CFAF /* SJWatermarkViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJWatermarkViewDefines.h; sourceTree = ""; }; + 41A0E56BD1011EAF7B2FD0E37C916287 /* SJViewControllerManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJViewControllerManager.h; sourceTree = ""; }; 41FD592DB8D354F4D221B5429D3929F4 /* SJSQLite3+QueryExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJSQLite3+QueryExtended.h"; path = "SJUIKit/SQLite3/SJSQLite3+QueryExtended.h"; sourceTree = ""; }; + 424D3C6A282FF5F69F1EB421266631E2 /* SJAVPlayerItemObservation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVPlayerItemObservation.h; sourceTree = ""; }; + 42D8556ABC91A099E0F7019D25580230 /* SJMediaPlaybackController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJMediaPlaybackController.h; sourceTree = ""; }; + 437F092AC93263E99C9D1B182A9DD3CC /* SJVideoDefinitionSwitchingInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoDefinitionSwitchingInfo.h; sourceTree = ""; }; 43C3E3D23E196F68C261E8BA31D32534 /* LICENSE.md */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE.md; sourceTree = ""; }; - 4455C058FC6CE9D075C771CE5E71FA82 /* SJPlayerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerView.h; sourceTree = ""; }; 4667FD2126EC3C2F44805CFCB3B7E9F2 /* SJSQLite3+FoundationExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJSQLite3+FoundationExtended.h"; path = "SJUIKit/SQLite3/SJSQLite3+FoundationExtended.h"; sourceTree = ""; }; 46AFEEEF9E4048C5012BAE12A0BD0686 /* SJSQLiteTableModelProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteTableModelProtocol.h; path = SJUIKit/SQLite3/Protocol/SJSQLiteTableModelProtocol.h; sourceTree = ""; }; 46B4578624C9F0064CEC33013D9E93D1 /* SJBaseVideoPlayer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJBaseVideoPlayer-dummy.m"; sourceTree = ""; }; - 48AD14545298EFBE2F4851CD5476CC06 /* SJVideoPlayerRegistrar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerRegistrar.m; sourceTree = ""; }; + 48424D3291514F700CEB92B514A39E0C /* SJAVPictureInPictureController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVPictureInPictureController.h; sourceTree = ""; }; + 49634969EF46BD7EF13832170B21C3BD /* CALayer+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CALayer+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; 497BE8CDA8792D74BBDBFBD75C3E4221 /* UIScrollView+ListViewAutoplaySJAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+ListViewAutoplaySJAdd.h"; path = "SJBaseVideoPlayer/UIScrollView+ListViewAutoplaySJAdd.h"; sourceTree = ""; }; 4AA59E16C2383D3493C663D00820F7A8 /* YYModel-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-prefix.pch"; sourceTree = ""; }; 4B6DA01462683D7BC3E32591A65A1F4F /* SJBaseVideoPlayer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SJBaseVideoPlayer.debug.xcconfig; sourceTree = ""; }; - 4BAC7C572278D0B5E59BEFB5D1F8B06F /* SJFitOnScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJFitOnScreenManager.m; sourceTree = ""; }; - 4BC3AE5C3B8F45A5DFEE230B198D3D0E /* UIScrollView+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; 4BE9707589D128D4F9330D44C0214686 /* SJAttributesRecorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJAttributesRecorder.h; path = SJUIKit/AttributesFactory/Deprecated/SJAttributesRecorder.h; sourceTree = ""; }; - 4C7116CA3D054C4044FAB64014051AD8 /* SJVideoPlayerPresentViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPresentViewDefines.h; sourceTree = ""; }; - 4C87431A3745F63B652B5B589BE26727 /* SJAVMediaPlayerLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayerLoader.m; sourceTree = ""; }; 4DE7701971BD32E0A0FB47E18E85FD1A /* Pods-Project */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Project"; path = Pods_Project.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4EAC1AC9A8D4548491CDAEE18FE6B60A /* SJPlaybackRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackRecord.m; sourceTree = ""; }; + 4E9AA65C95D03C0B87C48C2033519073 /* SJViewControllerManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJViewControllerManagerDefines.h; sourceTree = ""; }; 5090E8AA1B55EBDB977F0D05DE9EA675 /* YYModel-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYModel-dummy.m"; sourceTree = ""; }; 51AF23CB92C8BB88C0B20DB5A47901DE /* SJBaseVideoPlayer */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = SJBaseVideoPlayer; path = SJBaseVideoPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 51B79E3738CE35C29D3073D2D7C4D63B /* SJPlayerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerView.h; sourceTree = ""; }; 51D9C88DC6F0E33C8486631A9B3BDF47 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = ""; }; 5230E94FA331835220956A04BE4361D7 /* SJSQLiteErrors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteErrors.m; path = SJUIKit/SQLite3/Core/SJSQLiteErrors.m; sourceTree = ""; }; - 53B3E56BE5C4147CE3F70B0DBFC089BE /* SJSubtitleItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitleItem.h; sourceTree = ""; }; - 5610300532E2247109DFD4D76EB237BE /* AVAsset+SJAVMediaExport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AVAsset+SJAVMediaExport.h"; sourceTree = ""; }; - 5670D039D0CE223627D97F9E0528F8D2 /* UIViewController+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; + 54CC0046369C3E045FAC81D630086B01 /* SJVideoPlayerRegistrar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerRegistrar.m; sourceTree = ""; }; + 54D1413ED7045603EE22E921FD4EDD49 /* SJAVMediaPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayer.h; sourceTree = ""; }; + 55DA12C1F4F4C6061C6021DB546EE216 /* SJDeviceVolumeAndBrightnessController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessController.h; sourceTree = ""; }; + 55FD53183B3C9707A06AD1627FA4A76E /* SJSmallViewFloatingController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSmallViewFloatingController.m; sourceTree = ""; }; + 578D1FB14D42B75D37A3E570633E2124 /* SJBaseVideoPlayerConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJBaseVideoPlayerConst.h; sourceTree = ""; }; 57D0365E275C9D9A5036FA0938AF3265 /* SJBaseVideoPlayer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJBaseVideoPlayer-prefix.pch"; sourceTree = ""; }; 5831EF029D482876D00A13BB8A71305E /* SJUIKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SJUIKit-Info.plist"; sourceTree = ""; }; - 58B879742C193537E8B61DF29E943874 /* SJPlaybackHistoryController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackHistoryController.h; sourceTree = ""; }; - 58EC8DF3FA092403E60132A8CCD91CF4 /* SJPromptingPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPromptingPopupController.m; sourceTree = ""; }; - 5CA17ACBFD8FDD9A80368635DA653942 /* SJVideoDefinitionSwitchingInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoDefinitionSwitchingInfo.h; sourceTree = ""; }; + 5C2B5347DE7F6DA3EA916DDD152136A3 /* SJSubtitlePopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSubtitlePopupController.m; sourceTree = ""; }; + 5E3F1C17A6B7F65615610E65A2298EA6 /* SJDanmakuPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuPopupControllerDefines.h; sourceTree = ""; }; 5F506DEB3EFF2A4FDD8CFC43ED88D99C /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+MASDebugAdditions.h"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; - 5F52155259905D12D5219A80333C85B6 /* SJVideoPlayerURLAssetPrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerURLAssetPrefetcher.m; sourceTree = ""; }; 5F5F892C1962DAD56EAF09160309F30D /* SJUIKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SJUIKit.release.xcconfig; sourceTree = ""; }; + 5F5FA76D19A22368EB258F79EF307104 /* SJRotationManager_iOS_9_15.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager_iOS_9_15.m; sourceTree = ""; }; + 5FB51D3DC16683D2B12CF20580F55019 /* UIView+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + 5FD0D73171416C9959E49804A2181252 /* SJFitOnScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFitOnScreenManager.h; sourceTree = ""; }; 60CD3C948619BF2C56A0A038F7F12133 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASAdditions.h"; path = "Masonry/View+MASAdditions.h"; sourceTree = ""; }; + 611D8572656342B62F9AD6D3243FA76A /* AVAsset+SJAVMediaExport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AVAsset+SJAVMediaExport.m"; sourceTree = ""; }; 611F80D03BBBDF1A3A4D951ECC24A239 /* NSObject+YYModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYModel.h"; path = "YYModel/NSObject+YYModel.h"; sourceTree = ""; }; - 61674038137C45952C08380E31F1C257 /* NSTimer+SJAssetAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSTimer+SJAssetAdd.h"; sourceTree = ""; }; 62E0971FDB478ED5C993BC29CDC6BAEA /* SJPlaybackRecordSaveHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJPlaybackRecordSaveHandler.h; path = SJBaseVideoPlayer/SJPlaybackRecordSaveHandler.h; sourceTree = ""; }; + 62F8BC059F87DFA9AC3C59793420F85E /* AVAsset+SJAVMediaExport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AVAsset+SJAVMediaExport.h"; sourceTree = ""; }; 63263AC833A62C72C63BC363B48F7216 /* SJUTAttributes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUTAttributes.h; path = SJUIKit/AttributesFactory/UIKitText/SJUTAttributes.h; sourceTree = ""; }; - 634657ABDC0BE9988CB15FC9EB233F5F /* SJDeviceVolumeAndBrightnessControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessControllerDefines.h; sourceTree = ""; }; - 6426C5799F63EAF83FA1984B6E66094E /* CALayer+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CALayer+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; + 64827A691C9227E56C62FF717A42D96B /* SJAVMediaPlayerLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayerLoader.m; sourceTree = ""; }; 64E670CB73B0364F174DCA6C15FAD7F1 /* YYClassInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYClassInfo.m; path = YYModel/YYClassInfo.m; sourceTree = ""; }; - 65753E74F929AF6EB8ABEA4BBE6E97DD /* SJWatermarkView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJWatermarkView.h; sourceTree = ""; }; - 66B6E7C3670A703A6765FD5EAE90748F /* CALayer+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CALayer+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; 66C1C5952F6FE54091C8006A63DD1DDC /* SJSQLite3+TableExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SJSQLite3+TableExtended.m"; path = "SJUIKit/SQLite3/SJSQLite3+TableExtended.m"; sourceTree = ""; }; + 66E4E86969DC299505E951C41D38EBE8 /* SJRotationManager_iOS_16_Later.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager_iOS_16_Later.h; sourceTree = ""; }; 6A5E90CFF5C5CFC3B93DAA4B81DB4EE4 /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MASAdditions.m"; path = "Masonry/NSArray+MASAdditions.m"; sourceTree = ""; }; + 6CA6482482DDFF238D25E18DCF93A79D /* SJRotationManager_iOS_16_Later.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager_iOS_16_Later.m; sourceTree = ""; }; 6D28FCC873A756DE3F2BFC53BEAB1D5B /* SJUTRegexHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUTRegexHandler.m; path = SJUIKit/AttributesFactory/UIKitText/SJUTRegexHandler.m; sourceTree = ""; }; - 6D6B294F83A2C7071CC767B17C8A6179 /* SJGestureControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJGestureControllerDefines.h; sourceTree = ""; }; 6D8020A7CC0B7643F6E8C475C43C4151 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; + 6DEF8B4D6D95F322193154C28419D528 /* SJSmallViewFloatingController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSmallViewFloatingController.h; sourceTree = ""; }; + 6E1FFC1D960251B25014C75BE7B96745 /* SJVideoPlayerURLAsset.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerURLAsset.h; sourceTree = ""; }; 6F6B80BCC0CACC3B38EB1D38413B817E /* SJAttributeWorker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJAttributeWorker.h; path = SJUIKit/AttributesFactory/Deprecated/SJAttributeWorker.h; sourceTree = ""; }; + 6F9F661354CDAC7E9675A88788D95892 /* SJTextPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTextPopupController.h; sourceTree = ""; }; 70695AC1C5378CB697997AFBFD6EB30E /* SJUIKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SJUIKit.modulemap; sourceTree = ""; }; - 71C5135562747FA026E2D38E29251644 /* SJViewControllerManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJViewControllerManager.m; sourceTree = ""; }; 71C5B4CA200942F80C88D9966FCB17EC /* SJBaseVideoPlayer+TestLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJBaseVideoPlayer+TestLog.h"; path = "SJBaseVideoPlayer/SJBaseVideoPlayer+TestLog.h"; sourceTree = ""; }; + 72173FF949925A685C747FB5182F7AB9 /* SJPlayerAutoplayConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerAutoplayConfig.h; sourceTree = ""; }; 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 7375E545EE7E4C5ABA64C972BEF04E68 /* NSAttributedString+SJMake.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+SJMake.h"; path = "SJUIKit/AttributesFactory/NSAttributedString+SJMake.h"; sourceTree = ""; }; - 73FD49A002BB136914183F90D917E58E /* SJAVPictureInPictureController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVPictureInPictureController.h; sourceTree = ""; }; 7412F50E0C1579337739CDFD6D10A6EC /* Pods-Project-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Project-Info.plist"; sourceTree = ""; }; - 749540979324D82B873094BF003F8347 /* SJSmallViewFloatingController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSmallViewFloatingController.h; sourceTree = ""; }; - 7527B6BC6B08DF5FF3C181A2D61532E3 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m"; sourceTree = ""; }; 755FE1E6577F769401B5E5E2849C0962 /* SJBaseVideoPlayer.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = SJBaseVideoPlayer.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 7596BF92B5735BABF74C70790A4939C6 /* SJDanmakuPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDanmakuPopupController.m; sourceTree = ""; }; 75EBAE83AB0DADD176AD120E6439965C /* YYClassInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYClassInfo.h; path = YYModel/YYClassInfo.h; sourceTree = ""; }; 77C65884AE06B6B46D3BB9A2CF67418D /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+MASDebugAdditions.m"; path = "Masonry/NSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; - 7932B6D8CA20F25E0FC582A1FD9D678B /* SJVideoPlayerRegistrar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerRegistrar.h; sourceTree = ""; }; - 7AD078C8F66A84EB34561A3729CABF81 /* AVAsset+SJAVMediaExport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AVAsset+SJAVMediaExport.m"; sourceTree = ""; }; - 7BEA2E2AD67BEAAEDC079949988D0E69 /* SJDeviceVolumeAndBrightnessTargetViewContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightnessTargetViewContext.m; sourceTree = ""; }; - 7D3E774F9F26ABE0ED954683750FC6E9 /* SJViewControllerManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJViewControllerManager.h; sourceTree = ""; }; - 7E8D862B90602EDF0C8AF2568ECAF646 /* SJFlipTransitionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFlipTransitionManager.h; sourceTree = ""; }; + 797E28B29DC6C5A4F1F15E4C5C4BFCA9 /* SJGestureControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJGestureControllerDefines.h; sourceTree = ""; }; + 79D875D67313CD8E03B0EE598E6E1068 /* SJAVPlayerItemObservation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVPlayerItemObservation.m; sourceTree = ""; }; + 7B22452A4C11664D5632B5FAE1120312 /* SJSmallViewFloatingControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSmallViewFloatingControllerDefines.h; sourceTree = ""; }; + 7B34259598DF8705CF58C65D2323560F /* SJAVMediaPlayerLayerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayerLayerView.h; sourceTree = ""; }; + 7B3785AB1AE569222A9A4A845D2DFF90 /* UIViewController+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIViewController+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + 7B4233E100B77D4A55179DE982FC2E02 /* SJReachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJReachability.m; sourceTree = ""; }; + 7C2BE73E295C91D891C7C9C977CD5B76 /* SJRotationObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationObserver.h; sourceTree = ""; }; 7F9461DEB390D6705832A281E7917824 /* SJSQLiteCore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteCore.h; path = SJUIKit/SQLite3/Core/SJSQLiteCore.h; sourceTree = ""; }; - 8031ABFCA82A090A4A2B4275801B5595 /* SJAVMediaPlayerLayerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayerLayerView.m; sourceTree = ""; }; - 825A8E710684CE55BAFA7CE9E45E8556 /* SJFitOnScreenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFitOnScreenManager.h; sourceTree = ""; }; + 81240F22740A8A63A0D8076004D497CF /* SJPlaybackObservation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackObservation.m; sourceTree = ""; }; + 8199DE8BD65D8D1C8838A09D048FAC7A /* SJDeviceVolumeAndBrightness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightness.m; sourceTree = ""; }; + 81B4C6C30052DDBF85C81A2689AC10EC /* SJRotationFullscreenWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenWindow.h; sourceTree = ""; }; + 81E799687BFB874656F509975A95BDFA /* SJAVPictureInPictureController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVPictureInPictureController.m; sourceTree = ""; }; 83A9E9FCE34F1B3200D04ACB419B8E5A /* SJSQLite3ColumnOrder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3ColumnOrder.h; path = SJUIKit/SQLite3/Core/SJSQLite3ColumnOrder.h; sourceTree = ""; }; 849BCD288A344B4FFAE4C5027CB95504 /* SJSQLite3+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SJSQLite3+Private.h"; path = "SJUIKit/SQLite3/SJSQLite3+Private.h"; sourceTree = ""; }; + 84A248C7DBC4E1FA764F3626C33C3EFD /* SJControlLayerAppearStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJControlLayerAppearStateManager.m; sourceTree = ""; }; + 851FBB3A8550202BB4E942C525C5DD8E /* SJRotationObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationObserver.m; sourceTree = ""; }; 8559AB1E3CE526B2D75F9B273169BA96 /* SJSQLite3Condition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3Condition.h; path = SJUIKit/SQLite3/Core/SJSQLite3Condition.h; sourceTree = ""; }; - 87440D5402839AFA29113FC637E6AA65 /* SJRotationFullscreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenViewController.m; sourceTree = ""; }; 875EDA42BE0BCF5A8515B14E762CA75E /* SJSQLite3TableInfoCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3TableInfoCache.h; path = SJUIKit/SQLite3/Core/SJSQLite3TableInfoCache.h; sourceTree = ""; }; - 8854884DAB4CC9454414C4DACD7319DD /* SJPlayerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayerView.m; sourceTree = ""; }; + 878311675623B2B7A0C9D9B0E67D89FE /* SJAVMediaPlayerLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayerLoader.h; sourceTree = ""; }; + 87FFA093FFACA46CBCFF431DDBBA6351 /* SJPromptingPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPromptingPopupControllerDefines.h; sourceTree = ""; }; 8873842EE0F147AA86E07E2D93A5FAA0 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MASAdditions.h"; path = "Masonry/NSArray+MASAdditions.h"; sourceTree = ""; }; - 88C1F17FD339AB46B309936ECFDB4F99 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJVideoPlayerURLAsset+SJSubtitlesAdd.m"; sourceTree = ""; }; - 8B499B6FEEBAFA00490B31DF504838B1 /* SJDeviceVolumeAndBrightnessController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightnessController.m; sourceTree = ""; }; + 891F2FC68EABA83C9598D792D8FA907A /* SJSubtitlePopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitlePopupController.h; sourceTree = ""; }; + 8A359D215CC856A244332ECD3B0AD6B6 /* SJDeviceVolumeAndBrightness.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightness.h; sourceTree = ""; }; + 8AA8E75B73FC427FF0ABE33E9F344B5C /* SJPromptingPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPromptingPopupController.h; sourceTree = ""; }; 8BB701A8A6B10E9364F652E334564562 /* SJUIKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJUIKit-dummy.m"; sourceTree = ""; }; - 8DB6C46D6DE8C16A87F02A2F44E6D81B /* SJPlayModelPropertiesObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayModelPropertiesObserver.m; sourceTree = ""; }; + 8CA0E87DFA7020F5A596E159D92AFD28 /* SJApplicationObservation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJApplicationObservation.h; sourceTree = ""; }; + 8D674E5047308BFB5BE81B70B05849A9 /* SJVideoPlayerURLAssetPrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerURLAssetPrefetcher.m; sourceTree = ""; }; 8DE31CC0A92F87348FE80FF44FE94046 /* SJUTAttributes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUTAttributes.m; path = SJUIKit/AttributesFactory/UIKitText/SJUTAttributes.m; sourceTree = ""; }; - 901E0AC1885B32CD73428A9B1DFEE2AA /* SJFlipTransitionManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFlipTransitionManagerDefines.h; sourceTree = ""; }; - 905176057F683399D447AD4CEA5109C0 /* SJVideoPlayerURLAsset.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerURLAsset.m; sourceTree = ""; }; + 8E10A7CB196ACB8700754A407641D639 /* SJMediaPlaybackController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJMediaPlaybackController.m; sourceTree = ""; }; 921ED55ECF9935906CE78C28F0E78068 /* SJUIKitAttributesDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUIKitAttributesDefines.h; path = SJUIKit/AttributesFactory/UIKitText/SJUIKitAttributesDefines.h; sourceTree = ""; }; 934960DDA8A79BB6287DBE9D202E9F79 /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Masonry-prefix.pch"; sourceTree = ""; }; - 95A7270FE765D4A15BCCBDF534E0921A /* SJControlLayerAppearStateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJControlLayerAppearStateManager.h; sourceTree = ""; }; - 975E13E24EFFDF5CB1DC0AF8EBB32919 /* SJRotationDefines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationDefines.m; sourceTree = ""; }; - 980526D314A9FBB20E124E7DF44D6C34 /* SJPlayerAutoplayConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayerAutoplayConfig.m; sourceTree = ""; }; - 9844E08C5E20CA8D7AFB6A4529FF7E61 /* SJDanmakuItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDanmakuItem.m; sourceTree = ""; }; - 9848F00F5EC5139419FF07E3070F6302 /* SJRotationManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManagerDefines.h; sourceTree = ""; }; - 9966E2A873369526C0594DD48CD4F5CC /* SJVideoDefinitionSwitchingInfo+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoDefinitionSwitchingInfo+Private.h"; sourceTree = ""; }; + 956E1EB5A0FCC2F6CD6A835C91C6A24F /* UIView+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; + 9629790595A2FCFE9B5F910CFEA15DCC /* SJControlLayerAppearStateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJControlLayerAppearStateManager.h; sourceTree = ""; }; + 96EE49EF423A9A2EAB54C594582C507C /* SJDeviceVolumeAndBrightnessTargetViewContext.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightnessTargetViewContext.m; sourceTree = ""; }; + 96F792C0BB43ABD5E83261B68B9F185F /* SJPlaybackHistoryController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackHistoryController.h; sourceTree = ""; }; + 982ED54D85CA540BB6C84F67BB8DC6D5 /* NSString+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; + 98AED38B618439CF30BF100A17906E63 /* SJPlaybackHistoryController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackHistoryController.m; sourceTree = ""; }; 9AB102AC1B66DFE95CAF5C4973D7B7E4 /* SJUTRegexHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUTRegexHandler.h; path = SJUIKit/AttributesFactory/UIKitText/SJUTRegexHandler.h; sourceTree = ""; }; 9B5062B42B516C70D0B5F048FF6D1EF4 /* SJRunLoopTaskQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJRunLoopTaskQueue.m; path = SJUIKit/Queues/SJRunLoopTaskQueue.m; sourceTree = ""; }; 9BA25532A9A074C7FAE149FA2622EFB7 /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; 9BEA648C83C118DBE996630F236698C7 /* SJSQLite3.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3.m; path = SJUIKit/SQLite3/SJSQLite3.m; sourceTree = ""; }; 9BFB7557595FB8955D102B5EB071A1EC /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9EB70D8A5CF92A41BB77F0BD0167D134 /* SJSmallViewFloatingController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSmallViewFloatingController.m; sourceTree = ""; }; + 9E08AD02F9166C2E084886F363FFB80D /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m"; sourceTree = ""; }; + 9E1EAC9CC489915621913E7D49975502 /* SJAVPlayerObservation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVPlayerObservation.m; sourceTree = ""; }; 9F5875AB38F5D486415BCB37BE96C557 /* SJSQLiteCore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteCore.m; path = SJUIKit/SQLite3/Core/SJSQLiteCore.m; sourceTree = ""; }; A14541EABD5A2520B947D474F96AED65 /* SJSQLiteTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteTableInfo.h; path = SJUIKit/SQLite3/Core/SJSQLiteTableInfo.h; sourceTree = ""; }; - A2B1E3F45196F887A2FA6E9C71FE4E86 /* UIView+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIView+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + A3A9435BDC0D94326778B3ED356C5254 /* SJReachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJReachability.h; sourceTree = ""; }; A497ABC342E12392CA2A86044A04F8C8 /* SJBaseVideoPlayer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SJBaseVideoPlayer.modulemap; sourceTree = ""; }; A4FD662E8B8FBB06EBC2D8984FE1C3D4 /* SJSQLiteTableModelConstraints.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteTableModelConstraints.m; path = SJUIKit/SQLite3/Core/SJSQLiteTableModelConstraints.m; sourceTree = ""; }; A57810A21C382E3893421ED1CA8D7FD8 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = ""; }; A651ACEF45701F8A03952A038C444A1A /* YYModel.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYModel.modulemap; sourceTree = ""; }; A68A7D93DE287CB24440ABFEBD80EEE5 /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = ""; }; A6DF7C41590F6A5D5BBDE8160C8FFEA7 /* SJSQLite3TableInfoCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3TableInfoCache.m; path = SJUIKit/SQLite3/Core/SJSQLite3TableInfoCache.m; sourceTree = ""; }; - A7823DBE25F836F1C9B27D43F091AD82 /* SJRotationObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationObserver.m; sourceTree = ""; }; + A79153679DF698EDBF02F272F9138D3F /* SJTextPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTextPopupControllerDefines.h; sourceTree = ""; }; + A7CE1476A43BCD424FFCC5A10C1839A4 /* SJAVMediaPlaybackController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJAVMediaPlaybackController.m; path = SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m; sourceTree = ""; }; A7EB145180723628EA9F5C33924D1457 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ViewController+MASAdditions.h"; path = "Masonry/ViewController+MASAdditions.h"; sourceTree = ""; }; - A84802646921D346EAA0AFDE332FF649 /* SJSubtitleItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSubtitleItem.m; sourceTree = ""; }; + A8E26E2588834D027B7033118ACF15FE /* SJReachabilityDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJReachabilityDefines.h; sourceTree = ""; }; A9488DC75E6BBDC423D064DF0213E734 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = ""; }; A98185BFC48E2481B55E8EFADFEDA335 /* Pods-Project-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Project-dummy.m"; sourceTree = ""; }; - A99F127186D12465B6909C2007CEDC52 /* SJAVMediaPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayer.h; sourceTree = ""; }; - AB5CBEF27235F16A2CDB66FA7410B82C /* SJDanmakuPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuPopupController.h; sourceTree = ""; }; - AB740CBCA55491A5B31AD21CCCEA576D /* SJRotationFullscreenWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenWindow.m; sourceTree = ""; }; - AB957A3BD0D917EAA17F0989BF7D5E98 /* SJControlLayerAppearStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJControlLayerAppearStateManager.m; sourceTree = ""; }; - AD4C0AD9F4ED7AF16EC8FB13C6E0D2B3 /* SJPlayModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayModel.h; sourceTree = ""; }; + AA78A2C67837196810BBBB3170651FE9 /* SJTimerControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTimerControl.h; sourceTree = ""; }; AD6423FECBE8862009612DF8EE1DCD11 /* SJSQLite3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3.h; path = SJUIKit/SQLite3/SJSQLite3.h; sourceTree = ""; }; - AD660D70766648137B9E26A225A99307 /* UIView+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIView+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; - AF30B70A69580C35FB34028C5902CC3E /* SJPlaybackObservation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackObservation.h; sourceTree = ""; }; + AE382612C62F276B031D8C26E0749B1D /* SJPlaybackHistoryControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackHistoryControllerDefines.h; sourceTree = ""; }; AF6ED2593E27C94518218A3316B4B402 /* UIScrollView+ListViewAutoplaySJAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+ListViewAutoplaySJAdd.m"; path = "SJBaseVideoPlayer/UIScrollView+ListViewAutoplaySJAdd.m"; sourceTree = ""; }; - AFC81D9B4E03373351D64672E42F3E26 /* SJRotationDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationDefines.h; sourceTree = ""; }; + AF8BB212177B078CA500723389D7DB6B /* SJVideoPlayerControlLayerProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerControlLayerProtocol.h; sourceTree = ""; }; + B006EFD238852358ACCFCB6C8620AAF4 /* SJPlayerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayerView.m; sourceTree = ""; }; + B02205DFE1F28ABCB9C0E4F2B216BB66 /* SJVideoDefinitionSwitchingInfo+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoDefinitionSwitchingInfo+Private.h"; sourceTree = ""; }; + B03BC4E12916C4D4B067DDB7052D3276 /* SJVideoPlayerPresentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPresentView.h; sourceTree = ""; }; B178A505B8D4CD571F8E56D12DCD4682 /* SJSQLite3Logger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLite3Logger.h; path = SJUIKit/SQLite3/Core/SJSQLite3Logger.h; sourceTree = ""; }; B39EC7893B4071DB4D05B00CF497F28B /* SJSQLite3+RemoveExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SJSQLite3+RemoveExtended.m"; path = "SJUIKit/SQLite3/SJSQLite3+RemoveExtended.m"; sourceTree = ""; }; B40C9A3112D91F568942AF09CFAABB27 /* Pods-Project-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Project-umbrella.h"; sourceTree = ""; }; - B4A9541A0D6AC4202BB8504125E3F148 /* SJRotationFullscreenNavigationController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenNavigationController.m; sourceTree = ""; }; + B44A25546E9C4114C0254DFB68F5D569 /* SJSubtitleItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitleItem.h; sourceTree = ""; }; B677DB17831B788FAADC932BF6EC1BBC /* SJSQLiteObjectInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteObjectInfo.m; path = SJUIKit/SQLite3/Core/SJSQLiteObjectInfo.m; sourceTree = ""; }; - B71A316C34410E35FB678B6C10B29954 /* SJRotationFullscreenWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenWindow.h; sourceTree = ""; }; - B94796BF038883F0881F5292805E6AF4 /* SJDeviceVolumeAndBrightness.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDeviceVolumeAndBrightness.m; sourceTree = ""; }; - B992B1D45054BAF0F6DFAE6F315B29BF /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h"; sourceTree = ""; }; + B764030BF63F5D460E42D9FBFF2D23BF /* SJWatermarkView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJWatermarkView.h; sourceTree = ""; }; + B7A773B2A95E6B4B69A95E5BAD89BF61 /* SJPlayModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayModel.h; sourceTree = ""; }; + B92098D1F98D73A39FB979E0B49E974F /* SJRotationFullscreenViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenViewController.m; sourceTree = ""; }; + B9E3AACF6443EE36C1388CFEF2D799EF /* CALayer+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CALayer+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; + BA10BC54D941456E33CECEF570739901 /* SJDanmakuPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuPopupController.h; sourceTree = ""; }; + BA1AA396004BBAC7A015C4E9BBC0CBBE /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h"; sourceTree = ""; }; + BA3280EAF39CA5245726BD4ADADC59E6 /* SJSubtitleItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJSubtitleItem.m; sourceTree = ""; }; BAA505ACD2D3FF0FA40DA757FC5BA6D5 /* SJBaseVideoPlayerResourceLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJBaseVideoPlayerResourceLoader.h; path = SJBaseVideoPlayer/ResourceLoader/SJBaseVideoPlayerResourceLoader.h; sourceTree = ""; }; BBE914419A2FD6A18816808CA3B20EF2 /* SJBaseVideoPlayerResources.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = SJBaseVideoPlayerResources.bundle; path = SJBaseVideoPlayer/ResourceLoader/SJBaseVideoPlayerResources.bundle; sourceTree = ""; }; - BDAE271132E9CE0AF78335694F288C1D /* SJSmallViewFloatingControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSmallViewFloatingControllerDefines.h; sourceTree = ""; }; - BE85266176C7C71338C111E3C38FD978 /* SJVideoPlayerURLAsset.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerURLAsset.h; sourceTree = ""; }; - BE9939141945E30FCEDFE7FD8E0974A7 /* SJMediaPlaybackController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJMediaPlaybackController.m; sourceTree = ""; }; + C14717CA1B93E1BA3E74620CF7CE882F /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJVideoPlayerURLAsset+SJSubtitlesAdd.h"; sourceTree = ""; }; + C2173F7D0C04B7405C0D9CA48DAFD797 /* SJTextPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJTextPopupController.m; sourceTree = ""; }; + C2C56F87C3795176C9701595AE85CDE2 /* SJPromptingPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPromptingPopupController.m; sourceTree = ""; }; C32E1648DC8B9704A0F8D8920B038429 /* SJPresentationQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJPresentationQueue.h; path = SJUIKit/Queues/SJPresentationQueue.h; sourceTree = ""; }; + C3AF6585A5F499E6395581E125805470 /* UIScrollView+SJBaseVideoPlayerExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+SJBaseVideoPlayerExtended.m"; sourceTree = ""; }; C3D2128B1E2295EB0BDF4A2162762C95 /* SJSQLite3Logger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3Logger.m; path = SJUIKit/SQLite3/Core/SJSQLite3Logger.m; sourceTree = ""; }; - C4CBE8E8754D919561C54EC03B40F69F /* SJPlayerViewInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlayerViewInternal.h; sourceTree = ""; }; + C41816EE4D39F23631D9A248CE9E822B /* SJFlipTransitionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJFlipTransitionManager.m; sourceTree = ""; }; + C469F782FEF31C5AE5C987FE9A7B52F0 /* SJVideoPlayerURLAssetPrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerURLAssetPrefetcher.h; sourceTree = ""; }; C4D5D2C18119CF798372487723EC661C /* SJUIKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SJUIKit.debug.xcconfig; sourceTree = ""; }; - C672D2366E08B038CCA223FF43704863 /* SJRotationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager.m; sourceTree = ""; }; + C553C014E7CCAB2CE2656D0B9CE8D965 /* SJPlayModel+SJPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJPlayModel+SJPrivate.h"; sourceTree = ""; }; + C5BE8C0400B0FF4CEEB02EFCCC130BD3 /* SJViewControllerManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJViewControllerManager.m; sourceTree = ""; }; C7DBBB962D55FA0671670C3C46301874 /* SJBaseVideoPlayer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJBaseVideoPlayer-umbrella.h"; sourceTree = ""; }; + C7DCA5C326F4334001321A75CF8748E6 /* SJDanmakuItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJDanmakuItem.m; sourceTree = ""; }; + C8E708319AC98B46984B9FFB1B78016E /* SJFitOnScreenManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFitOnScreenManagerDefines.h; sourceTree = ""; }; C92DC775315E27C82C2D6A0162198F81 /* SJUIKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJUIKit-umbrella.h"; sourceTree = ""; }; CC20B9E78043975D22417110E92D99ED /* SJRunLoopTaskQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJRunLoopTaskQueue.h; path = SJUIKit/Queues/SJRunLoopTaskQueue.h; sourceTree = ""; }; CE2083D9C71D660BAE21105BCA614096 /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = ""; }; CE35AB1102F8410DBD57519CE1D33145 /* SJUIKitTextMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUIKitTextMaker.m; path = SJUIKit/AttributesFactory/UIKitText/SJUIKitTextMaker.m; sourceTree = ""; }; - CE8D0CA6FAB8138CC3717D4EBBE3899A /* SJPictureInPictureControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPictureInPictureControllerDefines.h; sourceTree = ""; }; - CEC230C39E2DF3BEA4681154EE72CD1E /* SJSubtitlePopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitlePopupController.h; sourceTree = ""; }; CF6FFA990E6FA8125BFDA36780031129 /* SJBaseVideoPlayer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJBaseVideoPlayer.h; path = SJBaseVideoPlayer/SJBaseVideoPlayer.h; sourceTree = ""; }; - CF72D8DA81E5143AB0D962A815B64F56 /* UIScrollView+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; - D0968629F2638B82611BDECD7A7DC129 /* SJPlaybackRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackRecord.h; sourceTree = ""; }; + D0E5EE2A3D11B76538AB4F4136384F6C /* SJWatermarkView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJWatermarkView.m; sourceTree = ""; }; + D1C64553DBFCD96766DE1C8C52A8D855 /* SJPlayModelPropertiesObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayModelPropertiesObserver.m; sourceTree = ""; }; D1D491365A7F01C6108057A2943B218C /* Masonry.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.release.xcconfig; sourceTree = ""; }; + D2179412E0533E4E0187EF4B92C38520 /* SJPictureInPictureControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPictureInPictureControllerDefines.h; sourceTree = ""; }; D25B2D8099B31BC055BC82298FBF2091 /* NSAttributedString+SJMake.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+SJMake.m"; path = "SJUIKit/AttributesFactory/NSAttributedString+SJMake.m"; sourceTree = ""; }; - D2B71B7690888805083D8FAE257B0122 /* SJViewControllerManagerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJViewControllerManagerDefines.h; sourceTree = ""; }; - D35CAA5BE0340A8C6770FBFF24E83E6A /* SJAVMediaPlayerLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVMediaPlayerLoader.h; sourceTree = ""; }; D383AEA4E2342CB6BC9DBF0AEBF1A2B8 /* SJSQLiteObjectInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteObjectInfo.h; path = SJUIKit/SQLite3/Core/SJSQLiteObjectInfo.h; sourceTree = ""; }; + D395C19E02BDE917DE85F9655014FFB2 /* SJRotationFullscreenNavigationController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenNavigationController.h; sourceTree = ""; }; D53A9817AA738CC1A1366FFAB1B21D83 /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = ""; }; - D5CE32FEFC818A4C8A2D6F1A655B1EFD /* SJRotationManager_iOS_9_15.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager_iOS_9_15.h; sourceTree = ""; }; - D693E641A9CC35F6089F9844B211095D /* SJDeviceVolumeAndBrightnessController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessController.h; sourceTree = ""; }; + D6019E3DB6713CDB38AFE1D9733DA127 /* SJRotationFullscreenWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationFullscreenWindow.m; sourceTree = ""; }; + D6D4ABE1A9F71793A1153BD4D32A045D /* SJFitOnScreenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJFitOnScreenManager.m; sourceTree = ""; }; + D6EB940B3C99A9EB373C55995D3FAFF2 /* SJApplicationObservation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJApplicationObservation.m; sourceTree = ""; }; D7CAAEA7150C0BC468B26BB6484C15DE /* Pods-Project-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Project-acknowledgements.markdown"; sourceTree = ""; }; - DA0FADA91FB5C8671A429C76FFB73776 /* SJPlayModel+SJPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SJPlayModel+SJPrivate.h"; sourceTree = ""; }; - DA5BCA01CABFC736AB0A0D6714533A96 /* SJTimerControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTimerControl.h; sourceTree = ""; }; - DD2632618F3107138BF09BC7D1566C3C /* SJPromptingPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPromptingPopupControllerDefines.h; sourceTree = ""; }; + D8EF41574076BF72542F7A5DC785C9E2 /* SJRotationManagerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManagerInternal.h; sourceTree = ""; }; + D942D4B7779998FE65ACC3FDA449E260 /* SJDeviceVolumeAndBrightnessTargetViewContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDeviceVolumeAndBrightnessTargetViewContext.h; sourceTree = ""; }; + DB1E9822D571767E7D0D07F744E1D481 /* SJVideoPlayerURLAsset.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoPlayerURLAsset.m; sourceTree = ""; }; + DC0DC58592051239483F16B11ECB635E /* SJAVMediaPlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayer.m; sourceTree = ""; }; DD9E66FFA16B62AA27015BABA2C28740 /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = ""; }; - DDED65ACADB929FCA998D1710186A9CD /* SJMediaPlaybackController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJMediaPlaybackController.h; sourceTree = ""; }; DDFBAA45109479137BCF0A74A5F94AFC /* Masonry.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Masonry.modulemap; sourceTree = ""; }; - E02C234169A9DF3E8142339D2B71E355 /* SJPlayModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlayModel.m; sourceTree = ""; }; + DE7A0C203C6147F2CFCD4EE54C5E97BF /* SJPlaybackObservation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJPlaybackObservation.h; sourceTree = ""; }; + E09CB4FDE5A59A9E1225D79F34045612 /* SJBaseVideoPlayerConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJBaseVideoPlayerConst.m; sourceTree = ""; }; E364C20E69338C598B56C8FBCE37445B /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; E37824179AEEA19101A4152F4719215B /* YYModel-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "YYModel-umbrella.h"; sourceTree = ""; }; E460D5B0416D36F66EE8EC89E5D2FA0A /* YYModel */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYModel; path = YYModel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E488D5430A251BCA57E9CE9D3DA48691 /* SJAVMediaPlaybackController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJAVMediaPlaybackController.h; path = SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.h; sourceTree = ""; }; E51943320BDF6ECA6CB48BC481398883 /* SJSQLiteTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLiteTableInfo.m; path = SJUIKit/SQLite3/Core/SJSQLiteTableInfo.m; sourceTree = ""; }; - E55A391994DEE4D0F4DA12DDCCBB8049 /* SJRotationFullscreenViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationFullscreenViewController.h; sourceTree = ""; }; - E5E07FFBC92CCC74657F9D0017992F88 /* SJDanmakuPopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuPopupControllerDefines.h; sourceTree = ""; }; - E7AE1530F1DEEF1225A14C667B373D3B /* SJSubtitlePopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitlePopupControllerDefines.h; sourceTree = ""; }; - E8727828D0960A7A1123E11DDFCC9D27 /* SJRotationManager_iOS_16_Later.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager_iOS_16_Later.m; sourceTree = ""; }; - E9EBB010C1BFC91809761416F303EE4A /* SJTextPopupController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJTextPopupController.m; sourceTree = ""; }; - EADEF6D157693B7E30D45E8BEF412C93 /* SJFlipTransitionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJFlipTransitionManager.m; sourceTree = ""; }; + EA8890CF2684313093613802DD380AE0 /* SJAVMediaPlaybackController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJAVMediaPlaybackController.h; path = SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.h; sourceTree = ""; }; + ECFB0A9AC75A4149196B15780D876504 /* SJPlaybackRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackRecord.m; sourceTree = ""; }; EE866BF9C69361D0D776B28D5577E022 /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Masonry-dummy.m"; sourceTree = ""; }; EF0E4781977790F5F94C8F78CEBE5774 /* SJSQLiteTableModelConstraints.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteTableModelConstraints.h; path = SJUIKit/SQLite3/Core/SJSQLiteTableModelConstraints.h; sourceTree = ""; }; - EF57937A83A24507AF78A853F84AB642 /* SJTextPopupController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJTextPopupController.h; sourceTree = ""; }; F0B2642E292D48B13F02E4DCB5946A8F /* SJUTRecorder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUTRecorder.h; path = SJUIKit/AttributesFactory/UIKitText/SJUTRecorder.h; sourceTree = ""; }; + F0C4580F5C877250FA437268DBD2A571 /* SJSubtitlePopupControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJSubtitlePopupControllerDefines.h; sourceTree = ""; }; F18AE2471FF679DB02706647E5BD5551 /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "View+MASShorthandAdditions.h"; path = "Masonry/View+MASShorthandAdditions.h"; sourceTree = ""; }; F1CD1C32B06B928AFE2F63377D39E56F /* SJUTRecorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUTRecorder.m; path = SJUIKit/AttributesFactory/UIKitText/SJUTRecorder.m; sourceTree = ""; }; - F1EFCDC1A3E5A67365DF8D4503B35FBC /* SJVideoPlayerControlLayerProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerControlLayerProtocol.h; sourceTree = ""; }; - F236D9167F4A7DE896D190EE9A0C6C87 /* SJAVMediaPlayer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJAVMediaPlayer.m; sourceTree = ""; }; - F2693BCE2E69C8E73B87BA2AB257995F /* SJDanmakuItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJDanmakuItem.h; sourceTree = ""; }; - F2BDDDA7C6EA9BA7E6AAFD546E1E71E6 /* SJReachabilityDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJReachabilityDefines.h; sourceTree = ""; }; F2DC1A74D5EDB795B5ACADD7874FAA83 /* SJTaskQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJTaskQueue.h; path = SJUIKit/Queues/SJTaskQueue.h; sourceTree = ""; }; F3278F912AFF535DD8A8EA613BE321A4 /* SJUTUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJUTUtils.h; path = SJUIKit/AttributesFactory/UIKitText/SJUTUtils.h; sourceTree = ""; }; - F3ACD6C1707B36AA73462F828C3E0BA0 /* SJWatermarkViewDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJWatermarkViewDefines.h; sourceTree = ""; }; F49AB9418D3DB09895BDE3AD8CB3EA09 /* SJAttributesRecorder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJAttributesRecorder.m; path = SJUIKit/AttributesFactory/Deprecated/SJAttributesRecorder.m; sourceTree = ""; }; F55E1FF2CFE4FCC6D52EC8D224522AF7 /* SJBaseVideoPlayer+TestLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SJBaseVideoPlayer+TestLog.m"; path = "SJBaseVideoPlayer/SJBaseVideoPlayer+TestLog.m"; sourceTree = ""; }; - F92405BCF5D46F63CF0F787E25644DE3 /* SJPlaybackObservation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJPlaybackObservation.m; sourceTree = ""; }; + F72D7174B4EC651F6075DB7CB99A0B3F /* UIScrollView+SJBaseVideoPlayerExtended.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+SJBaseVideoPlayerExtended.h"; sourceTree = ""; }; + F9991DA5D6A6CBED0F3B18FCE9EB69A9 /* SJRotationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager.m; sourceTree = ""; }; FA303D65D897B3A9E6B29F588D003C81 /* SJQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJQueue.h; path = SJUIKit/Queues/SJQueue.h; sourceTree = ""; }; - FA9409651783AC17474EEFB0BEF5BF6E /* SJRotationManager_iOS_9_15.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationManager_iOS_9_15.m; sourceTree = ""; }; + FAC912EDD2B861265B0AD7B223BDB51D /* SJVideoPlayerPlaybackControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPlaybackControllerDefines.h; sourceTree = ""; }; + FAE6B4265FFB3A861C37654D978548AB /* SJFlipTransitionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJFlipTransitionManager.h; sourceTree = ""; }; FAF560C11B4ECE5AD7F14E7623FBE29E /* SJSQLite3+QueryExtended.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SJSQLite3+QueryExtended.m"; path = "SJUIKit/SQLite3/SJSQLite3+QueryExtended.m"; sourceTree = ""; }; FB141A2F57D5E955286AD381887C5A06 /* SJUTRangeHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJUTRangeHandler.m; path = SJUIKit/AttributesFactory/UIKitText/SJUTRangeHandler.m; sourceTree = ""; }; FB5EA9401263E8F06F1503377E77FA32 /* SJSQLite3TableClassCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SJSQLite3TableClassCache.m; path = SJUIKit/SQLite3/Core/SJSQLite3TableClassCache.m; sourceTree = ""; }; - FB678429081489E40F0BB5D2C2CD6697 /* SJVideoPlayerURLAssetPrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerURLAssetPrefetcher.h; sourceTree = ""; }; FC20E4A5AD9B91056552F9B82A998097 /* SJAttributesFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJAttributesFactory.h; path = SJUIKit/AttributesFactory/SJAttributesFactory.h; sourceTree = ""; }; + FC47F98D59C5099F311D358859D0F1FE /* SJRotationManager_iOS_9_15.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJRotationManager_iOS_9_15.h; sourceTree = ""; }; FD05C29BF082E15EA21DCD1801BF0772 /* SJSQLiteErrors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SJSQLiteErrors.h; path = SJUIKit/SQLite3/Core/SJSQLiteErrors.h; sourceTree = ""; }; - FE30955F1F777EE3795D7D2E320F1030 /* SJVideoPlayerPlaybackControllerDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJVideoPlayerPlaybackControllerDefines.h; sourceTree = ""; }; + FDD7CA3D86AFE228964B2448ABFA3366 /* SJVideoDefinitionSwitchingInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJVideoDefinitionSwitchingInfo.m; sourceTree = ""; }; + FF656AC9ED804634590BB3CD5217F1F8 /* SJRotationDefines.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SJRotationDefines.m; sourceTree = ""; }; + FFE9F5AE5AC1AA64365C93E04A03DDDB /* SJAVPlayerObservation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SJAVPlayerObservation.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -603,41 +615,55 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 39FCE9FDA6CA6707073791CF881A119A /* Frameworks */ = { + 6AA6177D28B904EE2A96C009EF348954 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2DFFCF396791EC71CBEE6DACB68046CC /* Foundation.framework in Frameworks */, + FF4EE142784A1EC323DAC185E36E8035 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5D544A371D09E9FA2BEE8179890B94C7 /* Frameworks */ = { + A63F6DDD55C70516D0F4DCF423ED59E4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 52BEE5984DD2F1CE3C268C4342C2FF7C /* Foundation.framework in Frameworks */, + 79897EC6995688D1B0E36F552E2E79E2 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A63F6DDD55C70516D0F4DCF423ED59E4 /* Frameworks */ = { + BF57D3950FDC6BBE7F5C539949E547DF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 79897EC6995688D1B0E36F552E2E79E2 /* Foundation.framework in Frameworks */, + 3ACA9F35122D53C8F071F012AECB5B46 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C9B44021FA205D59E8991BE21F02C97B /* Frameworks */ = { + D34796174551971652D51736B60FFFA8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 56C1D0D5843B02308F00848B7AF12326 /* Foundation.framework in Frameworks */, + 77758CA4720327363B1D7384117D639B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 06303D0C6183FB22A70DFEE249566F48 /* Utils */ = { + isa = PBXGroup; + children = ( + 8CA0E87DFA7020F5A596E159D92AFD28 /* SJApplicationObservation.h */, + D6EB940B3C99A9EB373C55995D3FAFF2 /* SJApplicationObservation.m */, + AA78A2C67837196810BBBB3170651FE9 /* SJTimerControl.h */, + 0B5EFD034CD1C337876392815798D36B /* SJTimerControl.m */, + 16BDC69A2EA4B2E3110FE746832FE2C5 /* SJVideoPlayerRegistrar.h */, + 54CC0046369C3E045FAC81D630086B01 /* SJVideoPlayerRegistrar.m */, + ); + name = Utils; + path = SJBaseVideoPlayer/Common/Utils; + sourceTree = ""; + }; 0BEC2CCCEEAEBEFED27CE37E4BA7AC8B /* Masonry */ = { isa = PBXGroup; children = ( @@ -687,22 +713,6 @@ path = "Project/Pods/Target Support Files/SJBaseVideoPlayer"; sourceTree = ""; }; - 186D714831AA9DFB6C44815FB8579FD3 /* UIKit */ = { - isa = PBXGroup; - children = ( - 66B6E7C3670A703A6765FD5EAE90748F /* CALayer+SJBaseVideoPlayerExtended.h */, - 6426C5799F63EAF83FA1984B6E66094E /* CALayer+SJBaseVideoPlayerExtended.m */, - CF72D8DA81E5143AB0D962A815B64F56 /* UIScrollView+SJBaseVideoPlayerExtended.h */, - 4BC3AE5C3B8F45A5DFEE230B198D3D0E /* UIScrollView+SJBaseVideoPlayerExtended.m */, - A2B1E3F45196F887A2FA6E9C71FE4E86 /* UIView+SJBaseVideoPlayerExtended.h */, - AD660D70766648137B9E26A225A99307 /* UIView+SJBaseVideoPlayerExtended.m */, - 1DBC71EB26548876207B11F415F9A04C /* UIViewController+SJBaseVideoPlayerExtended.h */, - 5670D039D0CE223627D97F9E0528F8D2 /* UIViewController+SJBaseVideoPlayerExtended.m */, - ); - name = UIKit; - path = SJBaseVideoPlayer/Common/UIKit; - sourceTree = ""; - }; 1BB79DC2F2159E868E53F77D90822BBB /* Support Files */ = { isa = PBXGroup; children = ( @@ -733,38 +743,31 @@ name = Queues; sourceTree = ""; }; - 33F5294F57FBBFE6E22E020C669E3758 /* Core */ = { - isa = PBXGroup; - children = ( - 5610300532E2247109DFD4D76EB237BE /* AVAsset+SJAVMediaExport.h */, - 7AD078C8F66A84EB34561A3729CABF81 /* AVAsset+SJAVMediaExport.m */, - A99F127186D12465B6909C2007CEDC52 /* SJAVMediaPlayer.h */, - F236D9167F4A7DE896D190EE9A0C6C87 /* SJAVMediaPlayer.m */, - 083DBFBA96D50921D81E99BFB48A065A /* SJAVMediaPlayerLayerView.h */, - 8031ABFCA82A090A4A2B4275801B5595 /* SJAVMediaPlayerLayerView.m */, - D35CAA5BE0340A8C6770FBFF24E83E6A /* SJAVMediaPlayerLoader.h */, - 4C87431A3745F63B652B5B589BE26727 /* SJAVMediaPlayerLoader.m */, - 73FD49A002BB136914183F90D917E58E /* SJAVPictureInPictureController.h */, - 2F556E235ED0FE083CB101134FD148BE /* SJAVPictureInPictureController.m */, - B992B1D45054BAF0F6DFAE6F315B29BF /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */, - 7527B6BC6B08DF5FF3C181A2D61532E3 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */, - FB678429081489E40F0BB5D2C2CD6697 /* SJVideoPlayerURLAssetPrefetcher.h */, - 5F52155259905D12D5219A80333C85B6 /* SJVideoPlayerURLAssetPrefetcher.m */, - ); - name = Core; - path = SJBaseVideoPlayer/AVPlayer/Core; - sourceTree = ""; - }; - 3CECC4356D1F19B2A34C54291A835CF1 /* Utils */ = { + 2914BBF83F03083950F51694DE072A92 /* Interfaces */ = { isa = PBXGroup; children = ( - DA5BCA01CABFC736AB0A0D6714533A96 /* SJTimerControl.h */, - 32786A84ACD7FA9859896EC93857A821 /* SJTimerControl.m */, - 7932B6D8CA20F25E0FC582A1FD9D678B /* SJVideoPlayerRegistrar.h */, - 48AD14545298EFBE2F4851CD5476CC06 /* SJVideoPlayerRegistrar.m */, + 0CF881AFA1A55A929182A1E6899241A2 /* SJControlLayerAppearManagerDefines.h */, + 5E3F1C17A6B7F65615610E65A2298EA6 /* SJDanmakuPopupControllerDefines.h */, + 213FFEDA45ADB681ACCD50CCFDE6C443 /* SJDeviceVolumeAndBrightnessControllerDefines.h */, + C8E708319AC98B46984B9FFB1B78016E /* SJFitOnScreenManagerDefines.h */, + 0CC44FEF43ABA855702DB049BE3A0EDF /* SJFlipTransitionManagerDefines.h */, + 797E28B29DC6C5A4F1F15E4C5C4BFCA9 /* SJGestureControllerDefines.h */, + D2179412E0533E4E0187EF4B92C38520 /* SJPictureInPictureControllerDefines.h */, + AE382612C62F276B031D8C26E0749B1D /* SJPlaybackHistoryControllerDefines.h */, + 87FFA093FFACA46CBCFF431DDBBA6351 /* SJPromptingPopupControllerDefines.h */, + A8E26E2588834D027B7033118ACF15FE /* SJReachabilityDefines.h */, + 4085761BE09A904E070261EB37C5CA86 /* SJRotationManagerDefines.h */, + 7B22452A4C11664D5632B5FAE1120312 /* SJSmallViewFloatingControllerDefines.h */, + F0C4580F5C877250FA437268DBD2A571 /* SJSubtitlePopupControllerDefines.h */, + A79153679DF698EDBF02F272F9138D3F /* SJTextPopupControllerDefines.h */, + AF8BB212177B078CA500723389D7DB6B /* SJVideoPlayerControlLayerProtocol.h */, + FAC912EDD2B861265B0AD7B223BDB51D /* SJVideoPlayerPlaybackControllerDefines.h */, + 23267307B267DFEA9225F6ED36C9128A /* SJVideoPlayerPresentViewDefines.h */, + 4E9AA65C95D03C0B87C48C2033519073 /* SJViewControllerManagerDefines.h */, + 4157D2F736FBB34E05D356CA5979CFAF /* SJWatermarkViewDefines.h */, ); - name = Utils; - path = SJBaseVideoPlayer/Common/Utils; + name = Interfaces; + path = SJBaseVideoPlayer/Common/Interfaces; sourceTree = ""; }; 531069DF8B0BDA85B95002E2D582D79B /* YYModel */ = { @@ -781,33 +784,6 @@ path = YYModel; sourceTree = ""; }; - 555F4A33F8135385365EC3DC9775EEB0 /* Interfaces */ = { - isa = PBXGroup; - children = ( - 39DC0326667CD2D536F58954559D6A53 /* SJControlLayerAppearManagerDefines.h */, - E5E07FFBC92CCC74657F9D0017992F88 /* SJDanmakuPopupControllerDefines.h */, - 634657ABDC0BE9988CB15FC9EB233F5F /* SJDeviceVolumeAndBrightnessControllerDefines.h */, - 062CAAE95D4BFEB160585FDE525CFC7F /* SJFitOnScreenManagerDefines.h */, - 901E0AC1885B32CD73428A9B1DFEE2AA /* SJFlipTransitionManagerDefines.h */, - 6D6B294F83A2C7071CC767B17C8A6179 /* SJGestureControllerDefines.h */, - CE8D0CA6FAB8138CC3717D4EBBE3899A /* SJPictureInPictureControllerDefines.h */, - 3D1006A1F1C4EA1B5CE4FFEC7824F938 /* SJPlaybackHistoryControllerDefines.h */, - DD2632618F3107138BF09BC7D1566C3C /* SJPromptingPopupControllerDefines.h */, - F2BDDDA7C6EA9BA7E6AAFD546E1E71E6 /* SJReachabilityDefines.h */, - 9848F00F5EC5139419FF07E3070F6302 /* SJRotationManagerDefines.h */, - BDAE271132E9CE0AF78335694F288C1D /* SJSmallViewFloatingControllerDefines.h */, - E7AE1530F1DEEF1225A14C667B373D3B /* SJSubtitlePopupControllerDefines.h */, - 29D6C77207F9BEB4E7C1E5CF5B7AA6E9 /* SJTextPopupControllerDefines.h */, - F1EFCDC1A3E5A67365DF8D4503B35FBC /* SJVideoPlayerControlLayerProtocol.h */, - FE30955F1F777EE3795D7D2E320F1030 /* SJVideoPlayerPlaybackControllerDefines.h */, - 4C7116CA3D054C4044FAB64014051AD8 /* SJVideoPlayerPresentViewDefines.h */, - D2B71B7690888805083D8FAE257B0122 /* SJViewControllerManagerDefines.h */, - F3ACD6C1707B36AA73462F828C3E0BA0 /* SJWatermarkViewDefines.h */, - ); - name = Interfaces; - path = SJBaseVideoPlayer/Common/Interfaces; - sourceTree = ""; - }; 55A5FE50F8CEFE92F0635D6C8DD6F3DE /* ResourceLoader */ = { isa = PBXGroup; children = ( @@ -831,19 +807,6 @@ path = SJUIKit; sourceTree = ""; }; - 570C090F4C27A302FD4A34E317E81B76 /* Common */ = { - isa = PBXGroup; - children = ( - 9693BAF35A1A1462297655128A8773DE /* Const */, - 88C2E1A9CBB373EAEFB0BE907D7DF6CF /* Foundation */, - 7DAE335D076C61D8C3EAF14724AB9316 /* Implements */, - 555F4A33F8135385365EC3DC9775EEB0 /* Interfaces */, - 186D714831AA9DFB6C44815FB8579FD3 /* UIKit */, - 3CECC4356D1F19B2A34C54291A835CF1 /* Utils */, - ); - name = Common; - sourceTree = ""; - }; 573925759DEC022F5CF3489AE387FA6C /* Support Files */ = { isa = PBXGroup; children = ( @@ -914,90 +877,6 @@ name = Protocol; sourceTree = ""; }; - 7DAE335D076C61D8C3EAF14724AB9316 /* Implements */ = { - isa = PBXGroup; - children = ( - 95A7270FE765D4A15BCCBDF534E0921A /* SJControlLayerAppearStateManager.h */, - AB957A3BD0D917EAA17F0989BF7D5E98 /* SJControlLayerAppearStateManager.m */, - F2693BCE2E69C8E73B87BA2AB257995F /* SJDanmakuItem.h */, - 9844E08C5E20CA8D7AFB6A4529FF7E61 /* SJDanmakuItem.m */, - AB5CBEF27235F16A2CDB66FA7410B82C /* SJDanmakuPopupController.h */, - 2C94ADEACD086F45D65E8CA1E14A632F /* SJDanmakuPopupController.m */, - 3521598902123ACB9C657CC8D2084479 /* SJDeviceVolumeAndBrightness.h */, - B94796BF038883F0881F5292805E6AF4 /* SJDeviceVolumeAndBrightness.m */, - D693E641A9CC35F6089F9844B211095D /* SJDeviceVolumeAndBrightnessController.h */, - 8B499B6FEEBAFA00490B31DF504838B1 /* SJDeviceVolumeAndBrightnessController.m */, - 1CDA4B2240AFD389F9964535EF09FC0B /* SJDeviceVolumeAndBrightnessTargetViewContext.h */, - 7BEA2E2AD67BEAAEDC079949988D0E69 /* SJDeviceVolumeAndBrightnessTargetViewContext.m */, - 825A8E710684CE55BAFA7CE9E45E8556 /* SJFitOnScreenManager.h */, - 4BAC7C572278D0B5E59BEFB5D1F8B06F /* SJFitOnScreenManager.m */, - 7E8D862B90602EDF0C8AF2568ECAF646 /* SJFlipTransitionManager.h */, - EADEF6D157693B7E30D45E8BEF412C93 /* SJFlipTransitionManager.m */, - DDED65ACADB929FCA998D1710186A9CD /* SJMediaPlaybackController.h */, - BE9939141945E30FCEDFE7FD8E0974A7 /* SJMediaPlaybackController.m */, - 58B879742C193537E8B61DF29E943874 /* SJPlaybackHistoryController.h */, - 00A79B73AB2D4E1405F7DC486710E7B8 /* SJPlaybackHistoryController.m */, - AF30B70A69580C35FB34028C5902CC3E /* SJPlaybackObservation.h */, - F92405BCF5D46F63CF0F787E25644DE3 /* SJPlaybackObservation.m */, - D0968629F2638B82611BDECD7A7DC129 /* SJPlaybackRecord.h */, - 4EAC1AC9A8D4548491CDAEE18FE6B60A /* SJPlaybackRecord.m */, - 3B929DEE463CC0FD5A31446DE540B805 /* SJPlayerAutoplayConfig.h */, - 980526D314A9FBB20E124E7DF44D6C34 /* SJPlayerAutoplayConfig.m */, - 4455C058FC6CE9D075C771CE5E71FA82 /* SJPlayerView.h */, - 8854884DAB4CC9454414C4DACD7319DD /* SJPlayerView.m */, - C4CBE8E8754D919561C54EC03B40F69F /* SJPlayerViewInternal.h */, - AD4C0AD9F4ED7AF16EC8FB13C6E0D2B3 /* SJPlayModel.h */, - E02C234169A9DF3E8142339D2B71E355 /* SJPlayModel.m */, - DA0FADA91FB5C8671A429C76FFB73776 /* SJPlayModel+SJPrivate.h */, - 15B2C084A9E285A1830C1A73989EE273 /* SJPlayModelPropertiesObserver.h */, - 8DB6C46D6DE8C16A87F02A2F44E6D81B /* SJPlayModelPropertiesObserver.m */, - 374E3A8AEA5F6583C19D570421859894 /* SJPromptingPopupController.h */, - 58EC8DF3FA092403E60132A8CCD91CF4 /* SJPromptingPopupController.m */, - 1E6E2A54CA9C75B96A6957D94D758B0F /* SJReachability.h */, - 06FDF4A3A409E2522FB7C4C92FFE2CD6 /* SJReachability.m */, - AFC81D9B4E03373351D64672E42F3E26 /* SJRotationDefines.h */, - 975E13E24EFFDF5CB1DC0AF8EBB32919 /* SJRotationDefines.m */, - 294017786F26EB778F939EEC97A0E1D9 /* SJRotationFullscreenNavigationController.h */, - B4A9541A0D6AC4202BB8504125E3F148 /* SJRotationFullscreenNavigationController.m */, - E55A391994DEE4D0F4DA12DDCCBB8049 /* SJRotationFullscreenViewController.h */, - 87440D5402839AFA29113FC637E6AA65 /* SJRotationFullscreenViewController.m */, - B71A316C34410E35FB678B6C10B29954 /* SJRotationFullscreenWindow.h */, - AB740CBCA55491A5B31AD21CCCEA576D /* SJRotationFullscreenWindow.m */, - 03705B4A0D3B16454E5AFE377557CC02 /* SJRotationManager.h */, - C672D2366E08B038CCA223FF43704863 /* SJRotationManager.m */, - 07E53E29BF0250D227ABDADC2EB1BCB1 /* SJRotationManager_iOS_16_Later.h */, - E8727828D0960A7A1123E11DDFCC9D27 /* SJRotationManager_iOS_16_Later.m */, - D5CE32FEFC818A4C8A2D6F1A655B1EFD /* SJRotationManager_iOS_9_15.h */, - FA9409651783AC17474EEFB0BEF5BF6E /* SJRotationManager_iOS_9_15.m */, - 36755B0356F06D84B7C76D51A28F982C /* SJRotationManagerInternal.h */, - 3C56753EC5085EEE4E5781D5256B4227 /* SJRotationObserver.h */, - A7823DBE25F836F1C9B27D43F091AD82 /* SJRotationObserver.m */, - 749540979324D82B873094BF003F8347 /* SJSmallViewFloatingController.h */, - 9EB70D8A5CF92A41BB77F0BD0167D134 /* SJSmallViewFloatingController.m */, - 53B3E56BE5C4147CE3F70B0DBFC089BE /* SJSubtitleItem.h */, - A84802646921D346EAA0AFDE332FF649 /* SJSubtitleItem.m */, - CEC230C39E2DF3BEA4681154EE72CD1E /* SJSubtitlePopupController.h */, - 18CAD14ECCC9ABBA53F7A18DE3563648 /* SJSubtitlePopupController.m */, - EF57937A83A24507AF78A853F84AB642 /* SJTextPopupController.h */, - E9EBB010C1BFC91809761416F303EE4A /* SJTextPopupController.m */, - 5CA17ACBFD8FDD9A80368635DA653942 /* SJVideoDefinitionSwitchingInfo.h */, - 01B29247C32FDC274F480DF74FA8EDB0 /* SJVideoDefinitionSwitchingInfo.m */, - 9966E2A873369526C0594DD48CD4F5CC /* SJVideoDefinitionSwitchingInfo+Private.h */, - 10B806CDC553592F9D291FC6CBEE5344 /* SJVideoPlayerPresentView.h */, - 1D0C42DCDB8F66C1079183C6E355D885 /* SJVideoPlayerPresentView.m */, - BE85266176C7C71338C111E3C38FD978 /* SJVideoPlayerURLAsset.h */, - 905176057F683399D447AD4CEA5109C0 /* SJVideoPlayerURLAsset.m */, - 0CBB92B9BF0462800B5DD1E1B5F02C2E /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */, - 88C1F17FD339AB46B309936ECFDB4F99 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */, - 7D3E774F9F26ABE0ED954683750FC6E9 /* SJViewControllerManager.h */, - 71C5135562747FA026E2D38E29251644 /* SJViewControllerManager.m */, - 65753E74F929AF6EB8ABEA4BBE6E97DD /* SJWatermarkView.h */, - 17F694EB0B1BBBC5C523DC23383854A8 /* SJWatermarkView.m */, - ); - name = Implements; - path = SJBaseVideoPlayer/Common/Implements; - sourceTree = ""; - }; 7F77181D63C0373AB3A87ACEED73C277 /* AttributesFactory */ = { isa = PBXGroup; children = ( @@ -1025,16 +904,20 @@ path = "../Target Support Files/SJUIKit"; sourceTree = ""; }; - 88C2E1A9CBB373EAEFB0BE907D7DF6CF /* Foundation */ = { + 83B9DD0A96D47819EB4DF6BC4C4FA859 /* UIKit */ = { isa = PBXGroup; children = ( - 0D134099B291B86E3306A1CAD2A17334 /* NSString+SJBaseVideoPlayerExtended.h */, - 023A57CEC1A94B57368BD08F6E3DE78C /* NSString+SJBaseVideoPlayerExtended.m */, - 61674038137C45952C08380E31F1C257 /* NSTimer+SJAssetAdd.h */, - 08F6FA93FB93ECCBDB4120EA034DFBB7 /* NSTimer+SJAssetAdd.m */, + 49634969EF46BD7EF13832170B21C3BD /* CALayer+SJBaseVideoPlayerExtended.h */, + B9E3AACF6443EE36C1388CFEF2D799EF /* CALayer+SJBaseVideoPlayerExtended.m */, + F72D7174B4EC651F6075DB7CB99A0B3F /* UIScrollView+SJBaseVideoPlayerExtended.h */, + C3AF6585A5F499E6395581E125805470 /* UIScrollView+SJBaseVideoPlayerExtended.m */, + 5FB51D3DC16683D2B12CF20580F55019 /* UIView+SJBaseVideoPlayerExtended.h */, + 956E1EB5A0FCC2F6CD6A835C91C6A24F /* UIView+SJBaseVideoPlayerExtended.m */, + 7B3785AB1AE569222A9A4A845D2DFF90 /* UIViewController+SJBaseVideoPlayerExtended.h */, + 37F41FBE5D7BF47F4AF34E33869A5CCE /* UIViewController+SJBaseVideoPlayerExtended.m */, ); - name = Foundation; - path = SJBaseVideoPlayer/Common/Foundation; + name = UIKit; + path = SJBaseVideoPlayer/Common/UIKit; sourceTree = ""; }; 8FE8645A265DFEF7D71B3614C621672F /* Pods-Project */ = { @@ -1054,17 +937,30 @@ path = "Target Support Files/Pods-Project"; sourceTree = ""; }; - 9693BAF35A1A1462297655128A8773DE /* Const */ = { + 912AF4049184C77CA9FC266DFF354997 /* Const */ = { isa = PBXGroup; children = ( - 0B1F62BF796E63D386CD8233662C4E5A /* SJBaseVideoPlayerConst.h */, - 348E312BCC4577736B20AF91D9847CB1 /* SJBaseVideoPlayerConst.m */, - 1A4FF4BE8A81021372395D37773D9D14 /* SJVideoPlayerPlayStatusDefines.h */, + 578D1FB14D42B75D37A3E570633E2124 /* SJBaseVideoPlayerConst.h */, + E09CB4FDE5A59A9E1225D79F34045612 /* SJBaseVideoPlayerConst.m */, + 15B8218B65CD78111082C5DCE29C9FD7 /* SJVideoPlayerPlayStatusDefines.h */, ); name = Const; path = SJBaseVideoPlayer/Common/Const; sourceTree = ""; }; + 94D77874A04BD9C5F698E4C4E37362DD /* Common */ = { + isa = PBXGroup; + children = ( + 912AF4049184C77CA9FC266DFF354997 /* Const */, + C47B9BB8086FED6126B57CE461691D88 /* Foundation */, + F5BDC40705E5B20A90C85CF7D97FCECC /* Implements */, + 2914BBF83F03083950F51694DE072A92 /* Interfaces */, + 83B9DD0A96D47819EB4DF6BC4C4FA859 /* UIKit */, + 06303D0C6183FB22A70DFEE249566F48 /* Utils */, + ); + name = Common; + sourceTree = ""; + }; 97CF604050C150566FD115E4A78F28B8 /* Development Pods */ = { isa = PBXGroup; children = ( @@ -1122,16 +1018,6 @@ name = ObserverHelper; sourceTree = ""; }; - BB905C2559A5938ACE80E85705C197AA /* AVPlayer */ = { - isa = PBXGroup; - children = ( - E488D5430A251BCA57E9CE9D3DA48691 /* SJAVMediaPlaybackController.h */, - 3119258F47936ADC956B495EFB972F1D /* SJAVMediaPlaybackController.m */, - 33F5294F57FBBFE6E22E020C669E3758 /* Core */, - ); - name = AVPlayer; - sourceTree = ""; - }; C39E68B701143041882766D7AD0C3CCC /* UIKitText */ = { isa = PBXGroup; children = ( @@ -1152,6 +1038,44 @@ name = UIKitText; sourceTree = ""; }; + C47B9BB8086FED6126B57CE461691D88 /* Foundation */ = { + isa = PBXGroup; + children = ( + 2304ABA3EA3ACA99AEA7F457C24E28D2 /* NSString+SJBaseVideoPlayerExtended.h */, + 982ED54D85CA540BB6C84F67BB8DC6D5 /* NSString+SJBaseVideoPlayerExtended.m */, + 32633C2B6F243EA4912EBFDE6BA42EEE /* NSTimer+SJAssetAdd.h */, + 169225E7FD1129E5DF4B6995B2F1F821 /* NSTimer+SJAssetAdd.m */, + ); + name = Foundation; + path = SJBaseVideoPlayer/Common/Foundation; + sourceTree = ""; + }; + CAAC3F65C7C831B69217D9F5EE2D228C /* Core */ = { + isa = PBXGroup; + children = ( + 62F8BC059F87DFA9AC3C59793420F85E /* AVAsset+SJAVMediaExport.h */, + 611D8572656342B62F9AD6D3243FA76A /* AVAsset+SJAVMediaExport.m */, + 54D1413ED7045603EE22E921FD4EDD49 /* SJAVMediaPlayer.h */, + DC0DC58592051239483F16B11ECB635E /* SJAVMediaPlayer.m */, + 7B34259598DF8705CF58C65D2323560F /* SJAVMediaPlayerLayerView.h */, + 1D7683374B393C17D9BEE7736A24AC7F /* SJAVMediaPlayerLayerView.m */, + 878311675623B2B7A0C9D9B0E67D89FE /* SJAVMediaPlayerLoader.h */, + 64827A691C9227E56C62FF717A42D96B /* SJAVMediaPlayerLoader.m */, + 48424D3291514F700CEB92B514A39E0C /* SJAVPictureInPictureController.h */, + 81E799687BFB874656F509975A95BDFA /* SJAVPictureInPictureController.m */, + 424D3C6A282FF5F69F1EB421266631E2 /* SJAVPlayerItemObservation.h */, + 79D875D67313CD8E03B0EE598E6E1068 /* SJAVPlayerItemObservation.m */, + FFE9F5AE5AC1AA64365C93E04A03DDDB /* SJAVPlayerObservation.h */, + 9E1EAC9CC489915621913E7D49975502 /* SJAVPlayerObservation.m */, + BA1AA396004BBAC7A015C4E9BBC0CBBE /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h */, + 9E08AD02F9166C2E084886F363FFB80D /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m */, + C469F782FEF31C5AE5C987FE9A7B52F0 /* SJVideoPlayerURLAssetPrefetcher.h */, + 8D674E5047308BFB5BE81B70B05849A9 /* SJVideoPlayerURLAssetPrefetcher.m */, + ); + name = Core; + path = SJBaseVideoPlayer/AVPlayer/Core; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( @@ -1172,6 +1096,16 @@ name = Frameworks; sourceTree = ""; }; + DC7E6056947D9CAC4BD6B052A97E5FB3 /* AVPlayer */ = { + isa = PBXGroup; + children = ( + EA8890CF2684313093613802DD380AE0 /* SJAVMediaPlaybackController.h */, + A7CE1476A43BCD424FFCC5A10C1839A4 /* SJAVMediaPlaybackController.m */, + CAAC3F65C7C831B69217D9F5EE2D228C /* Core */, + ); + name = AVPlayer; + sourceTree = ""; + }; DF01E29C1E10272C13C0CBAFC6E3468C /* SJBaseVideoPlayer */ = { isa = PBXGroup; children = ( @@ -1183,8 +1117,8 @@ 12EFEBC3BDA6B8C8906F8D37872449A4 /* SJPlaybackRecordSaveHandler.m */, 497BE8CDA8792D74BBDBFBD75C3E4221 /* UIScrollView+ListViewAutoplaySJAdd.h */, AF6ED2593E27C94518218A3316B4B402 /* UIScrollView+ListViewAutoplaySJAdd.m */, - BB905C2559A5938ACE80E85705C197AA /* AVPlayer */, - 570C090F4C27A302FD4A34E317E81B76 /* Common */, + DC7E6056947D9CAC4BD6B052A97E5FB3 /* AVPlayer */, + 94D77874A04BD9C5F698E4C4E37362DD /* Common */, 665559C624760B1105B008A7EB8014F1 /* Pod */, 55A5FE50F8CEFE92F0635D6C8DD6F3DE /* ResourceLoader */, 185442200D1ACAD18B04C8010D4353F0 /* Support Files */, @@ -1193,6 +1127,90 @@ path = ../..; sourceTree = ""; }; + F5BDC40705E5B20A90C85CF7D97FCECC /* Implements */ = { + isa = PBXGroup; + children = ( + 9629790595A2FCFE9B5F910CFEA15DCC /* SJControlLayerAppearStateManager.h */, + 84A248C7DBC4E1FA764F3626C33C3EFD /* SJControlLayerAppearStateManager.m */, + 28F63464CF108E64695D4D35F3472716 /* SJDanmakuItem.h */, + C7DCA5C326F4334001321A75CF8748E6 /* SJDanmakuItem.m */, + BA10BC54D941456E33CECEF570739901 /* SJDanmakuPopupController.h */, + 7596BF92B5735BABF74C70790A4939C6 /* SJDanmakuPopupController.m */, + 8A359D215CC856A244332ECD3B0AD6B6 /* SJDeviceVolumeAndBrightness.h */, + 8199DE8BD65D8D1C8838A09D048FAC7A /* SJDeviceVolumeAndBrightness.m */, + 55DA12C1F4F4C6061C6021DB546EE216 /* SJDeviceVolumeAndBrightnessController.h */, + 0FB5B16199FF5701CCADEED93AC7477E /* SJDeviceVolumeAndBrightnessController.m */, + D942D4B7779998FE65ACC3FDA449E260 /* SJDeviceVolumeAndBrightnessTargetViewContext.h */, + 96EE49EF423A9A2EAB54C594582C507C /* SJDeviceVolumeAndBrightnessTargetViewContext.m */, + 5FD0D73171416C9959E49804A2181252 /* SJFitOnScreenManager.h */, + D6D4ABE1A9F71793A1153BD4D32A045D /* SJFitOnScreenManager.m */, + FAE6B4265FFB3A861C37654D978548AB /* SJFlipTransitionManager.h */, + C41816EE4D39F23631D9A248CE9E822B /* SJFlipTransitionManager.m */, + 42D8556ABC91A099E0F7019D25580230 /* SJMediaPlaybackController.h */, + 8E10A7CB196ACB8700754A407641D639 /* SJMediaPlaybackController.m */, + 96F792C0BB43ABD5E83261B68B9F185F /* SJPlaybackHistoryController.h */, + 98AED38B618439CF30BF100A17906E63 /* SJPlaybackHistoryController.m */, + DE7A0C203C6147F2CFCD4EE54C5E97BF /* SJPlaybackObservation.h */, + 81240F22740A8A63A0D8076004D497CF /* SJPlaybackObservation.m */, + 210E56DF59FD53563746CBF0BF5DF211 /* SJPlaybackRecord.h */, + ECFB0A9AC75A4149196B15780D876504 /* SJPlaybackRecord.m */, + 72173FF949925A685C747FB5182F7AB9 /* SJPlayerAutoplayConfig.h */, + 2591F154ADE462E8A35AE9DFF3FD7485 /* SJPlayerAutoplayConfig.m */, + 51B79E3738CE35C29D3073D2D7C4D63B /* SJPlayerView.h */, + B006EFD238852358ACCFCB6C8620AAF4 /* SJPlayerView.m */, + 1B9E00F23A1A10EA3A8B5565F8E334C3 /* SJPlayerViewInternal.h */, + B7A773B2A95E6B4B69A95E5BAD89BF61 /* SJPlayModel.h */, + 39C49045B8B4DC8462967DA12292CC83 /* SJPlayModel.m */, + C553C014E7CCAB2CE2656D0B9CE8D965 /* SJPlayModel+SJPrivate.h */, + 10F76CBFE32CBB1DF401C5A1FC827327 /* SJPlayModelPropertiesObserver.h */, + D1C64553DBFCD96766DE1C8C52A8D855 /* SJPlayModelPropertiesObserver.m */, + 8AA8E75B73FC427FF0ABE33E9F344B5C /* SJPromptingPopupController.h */, + C2C56F87C3795176C9701595AE85CDE2 /* SJPromptingPopupController.m */, + A3A9435BDC0D94326778B3ED356C5254 /* SJReachability.h */, + 7B4233E100B77D4A55179DE982FC2E02 /* SJReachability.m */, + 08F58C8CF6BC59F7A967808D6BD44B7A /* SJRotationDefines.h */, + FF656AC9ED804634590BB3CD5217F1F8 /* SJRotationDefines.m */, + D395C19E02BDE917DE85F9655014FFB2 /* SJRotationFullscreenNavigationController.h */, + 39376A4FE2B989A8612A6BB7AECAB2FA /* SJRotationFullscreenNavigationController.m */, + 12E35798468478FAC0E4F04976C8284D /* SJRotationFullscreenViewController.h */, + B92098D1F98D73A39FB979E0B49E974F /* SJRotationFullscreenViewController.m */, + 81B4C6C30052DDBF85C81A2689AC10EC /* SJRotationFullscreenWindow.h */, + D6019E3DB6713CDB38AFE1D9733DA127 /* SJRotationFullscreenWindow.m */, + 19B012E1E58EF0C4C2939522D6F0B2DC /* SJRotationManager.h */, + F9991DA5D6A6CBED0F3B18FCE9EB69A9 /* SJRotationManager.m */, + 66E4E86969DC299505E951C41D38EBE8 /* SJRotationManager_iOS_16_Later.h */, + 6CA6482482DDFF238D25E18DCF93A79D /* SJRotationManager_iOS_16_Later.m */, + FC47F98D59C5099F311D358859D0F1FE /* SJRotationManager_iOS_9_15.h */, + 5F5FA76D19A22368EB258F79EF307104 /* SJRotationManager_iOS_9_15.m */, + D8EF41574076BF72542F7A5DC785C9E2 /* SJRotationManagerInternal.h */, + 7C2BE73E295C91D891C7C9C977CD5B76 /* SJRotationObserver.h */, + 851FBB3A8550202BB4E942C525C5DD8E /* SJRotationObserver.m */, + 6DEF8B4D6D95F322193154C28419D528 /* SJSmallViewFloatingController.h */, + 55FD53183B3C9707A06AD1627FA4A76E /* SJSmallViewFloatingController.m */, + B44A25546E9C4114C0254DFB68F5D569 /* SJSubtitleItem.h */, + BA3280EAF39CA5245726BD4ADADC59E6 /* SJSubtitleItem.m */, + 891F2FC68EABA83C9598D792D8FA907A /* SJSubtitlePopupController.h */, + 5C2B5347DE7F6DA3EA916DDD152136A3 /* SJSubtitlePopupController.m */, + 6F9F661354CDAC7E9675A88788D95892 /* SJTextPopupController.h */, + C2173F7D0C04B7405C0D9CA48DAFD797 /* SJTextPopupController.m */, + 437F092AC93263E99C9D1B182A9DD3CC /* SJVideoDefinitionSwitchingInfo.h */, + FDD7CA3D86AFE228964B2448ABFA3366 /* SJVideoDefinitionSwitchingInfo.m */, + B02205DFE1F28ABCB9C0E4F2B216BB66 /* SJVideoDefinitionSwitchingInfo+Private.h */, + B03BC4E12916C4D4B067DDB7052D3276 /* SJVideoPlayerPresentView.h */, + 22937F2920214939877BB29E65D3C0C4 /* SJVideoPlayerPresentView.m */, + 6E1FFC1D960251B25014C75BE7B96745 /* SJVideoPlayerURLAsset.h */, + DB1E9822D571767E7D0D07F744E1D481 /* SJVideoPlayerURLAsset.m */, + C14717CA1B93E1BA3E74620CF7CE882F /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h */, + 1F1319F5927523156CD37BC4EE404457 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m */, + 41A0E56BD1011EAF7B2FD0E37C916287 /* SJViewControllerManager.h */, + C5BE8C0400B0FF4CEEB02EFCCC130BD3 /* SJViewControllerManager.m */, + B764030BF63F5D460E42D9FBFF2D23BF /* SJWatermarkView.h */, + D0E5EE2A3D11B76538AB4F4136384F6C /* SJWatermarkView.m */, + ); + name = Implements; + path = SJBaseVideoPlayer/Common/Implements; + sourceTree = ""; + }; F7F895F9C7A6213E96850F367AA04D30 /* SQLite3 */ = { isa = PBXGroup; children = ( @@ -1239,154 +1257,157 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6F1AF7974859896CCA9212DC6636A0E0 /* Headers */ = { + 30986056EC301C5F95AF5A32811F8E33 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B1E43ADBC241F8FE92EC5BA0716C809E /* NSAttributedString+SJMake.h in Headers */, - 46C747CAEE230CC29551FE93721AB8AE /* NSObject+SJObserverHelper.h in Headers */, - 3E8AB4E4D6A3846AD7332B3544B96AEC /* SJAttributesFactory.h in Headers */, - FF32674F344F45AFC4DE4EA7D5E64BEC /* SJAttributesRecorder.h in Headers */, - 04BEB4428CF69CF6600CEFCF55CB150D /* SJAttributeWorker.h in Headers */, - 84217FA9223DABC5E5666205CA971681 /* SJPresentationQueue.h in Headers */, - 5C3EAFF347D0598A42FB6F256B30B35A /* SJQueue.h in Headers */, - E0E669CEB875D78B121C346F971BCB6D /* SJRunLoopTaskQueue.h in Headers */, - 690E37CCC901C7727CDB9B2E96D3C685 /* SJSQLite3.h in Headers */, - DC0869DCA0281AEBD2633E400DF8E7B4 /* SJSQLite3+FoundationExtended.h in Headers */, - C77B875D4AE824959324D88B3F32CB6C /* SJSQLite3+Private.h in Headers */, - 6F36CCE69A014BE143B5D054735229D6 /* SJSQLite3+QueryExtended.h in Headers */, - F4B8EB6947BB907D0A7C9D6CC6EE6D58 /* SJSQLite3+RemoveExtended.h in Headers */, - 95DD70538402DF025BC8D4E8BF03B2BE /* SJSQLite3+TableExtended.h in Headers */, - E88E6E9B37EAD287C2CF9ACC24EF1CD5 /* SJSQLite3ColumnOrder.h in Headers */, - BBA2B7A689CC559C332DE21021E37FDB /* SJSQLite3Condition.h in Headers */, - 952A10E7E32D53F73EE588194B88A56A /* SJSQLite3Logger.h in Headers */, - 6DAA6FA0EE0D9D0BC0FC4B8B1DD9A4C8 /* SJSQLite3TableClassCache.h in Headers */, - 7196AD9D4A2066DBAA02D1F57F003C4F /* SJSQLite3TableInfoCache.h in Headers */, - 3E92CF71F83598308118CFB3446B4C49 /* SJSQLiteColumnInfo.h in Headers */, - 395D289C6BFFEDFA5F8B2E064CF417BC /* SJSQLiteCore.h in Headers */, - 294D645B65AD6DDF63A879A95B203360 /* SJSQLiteErrors.h in Headers */, - 1EEE20BF2C26BECCBAE3156A01B42E70 /* SJSQLiteObjectInfo.h in Headers */, - A82975AECF6DF0405C89BBAC6422E011 /* SJSQLiteTableInfo.h in Headers */, - EE9D68C3358FCE417D0499DFBD14590B /* SJSQLiteTableModelConstraints.h in Headers */, - B86EAB1568E8F0DC393F21DAC7551EE0 /* SJSQLiteTableModelProtocol.h in Headers */, - B4AF0F55A1FBB7B3C768F80B11033269 /* SJTaskQueue.h in Headers */, - 4AD1FE0D4974E68F17EB25CDD9D3FDD4 /* SJUIKit-umbrella.h in Headers */, - 966F53BE063798867189A77DED3C0394 /* SJUIKitAttributesDefines.h in Headers */, - 29EF33A0A2D6AE3C0C8E69AF308228DA /* SJUIKitTextMaker.h in Headers */, - E735CB21D98F8FCD4FA2DB12C30E8BFD /* SJUTAttributes.h in Headers */, - C60780245B34374563EA5C97DA1BD923 /* SJUTRangeHandler.h in Headers */, - 18293B76F9FA0FCEFA22C48011C6BB4D /* SJUTRecorder.h in Headers */, - 0121872003B150EACEDD2FCB92918E72 /* SJUTRegexHandler.h in Headers */, - CE0860D94D28CD8C30B2051F84C63EBE /* SJUTUtils.h in Headers */, + 8655ED0AB768AB887356D596B21861A9 /* NSAttributedString+SJMake.h in Headers */, + 2BDEBFA2DAEBC9EDDAE65FB1D6964594 /* NSObject+SJObserverHelper.h in Headers */, + 98FFC6E47817AE120718BB99988DAF4B /* SJAttributesFactory.h in Headers */, + E6D53DC8FB5F66FB26119A89A2A0AD1E /* SJAttributesRecorder.h in Headers */, + D5330E548B9E5EDF732700D54B552D83 /* SJAttributeWorker.h in Headers */, + 14C318BE9A4D43A5799B9EA3EC7D3648 /* SJPresentationQueue.h in Headers */, + AD39AFCC804A31369A3F4C478369A5BA /* SJQueue.h in Headers */, + B23BD06D9ABC495D7E04E5928199775C /* SJRunLoopTaskQueue.h in Headers */, + DC3ED6CD7CD9D14DEFE4B09D81C50276 /* SJSQLite3.h in Headers */, + 7CCA4FA0E00B9F6E5B7C2F43AA228F69 /* SJSQLite3+FoundationExtended.h in Headers */, + C2F97D50C61C66DB0E49F5C4BF96E1AF /* SJSQLite3+Private.h in Headers */, + D44250E7E98A0676DF8E62665F58D7D5 /* SJSQLite3+QueryExtended.h in Headers */, + DC7CCADEB5C738F56A488C4573A2AC0F /* SJSQLite3+RemoveExtended.h in Headers */, + 1C5C5C4FB38C10E514EDD7914ECBB995 /* SJSQLite3+TableExtended.h in Headers */, + F612FBBEDAB6DB620657879678A2DE79 /* SJSQLite3ColumnOrder.h in Headers */, + 9EE9359A2574BFB5EB1ADD5B78137A44 /* SJSQLite3Condition.h in Headers */, + 3066BFB09F73599337CDEE95D963E96F /* SJSQLite3Logger.h in Headers */, + 671CB8F4BA0C6FC15953E0F9CB398EB9 /* SJSQLite3TableClassCache.h in Headers */, + CA5AF027D20059053C04CFE463B98362 /* SJSQLite3TableInfoCache.h in Headers */, + 9DF496BADD087015AF5509FA27DF3F01 /* SJSQLiteColumnInfo.h in Headers */, + FED067784FDF6914FEE2C77EA2D3F674 /* SJSQLiteCore.h in Headers */, + A6DFE19C58149E009FF54261A8142BE3 /* SJSQLiteErrors.h in Headers */, + A3E19E217A712A9F003D750981C12E28 /* SJSQLiteObjectInfo.h in Headers */, + 53C20EC290CD53B2E40510AA39D7097D /* SJSQLiteTableInfo.h in Headers */, + 93A1269EB943E4783A691D1149CF1A16 /* SJSQLiteTableModelConstraints.h in Headers */, + 084A674D0CCC74BC727FD1319E958AD6 /* SJSQLiteTableModelProtocol.h in Headers */, + 65A52118848865CB69103BE6A52D1EAC /* SJTaskQueue.h in Headers */, + C08E657697473E41C78B1E35C77A5A9F /* SJUIKit-umbrella.h in Headers */, + 0C0B0ECB76A935267489AC5814EB728B /* SJUIKitAttributesDefines.h in Headers */, + 96082A3FF888B445983DC27F1A3DE324 /* SJUIKitTextMaker.h in Headers */, + D8199DF1273721E5115A6FB18A82E84B /* SJUTAttributes.h in Headers */, + B0DDEC431304AB3930FC10AFFBFFB3E8 /* SJUTRangeHandler.h in Headers */, + DE08BE8FE04A46E584D249FD063DE2C7 /* SJUTRecorder.h in Headers */, + 833D2E782596099974416E9AA1AB2E65 /* SJUTRegexHandler.h in Headers */, + BA6A0183E6F6EFD966C4F60A3E7DFABF /* SJUTUtils.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - C3B6CDE63EA7A421E5C9550CA98A32A8 /* Headers */ = { + 6EF8A0D3843B87607A78DEE176CE39D0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - ED4BD870B9572E246DDAE525C5C934CD /* NSObject+YYModel.h in Headers */, - FF759646E77BCDF4221C6FE84ACC5794 /* YYClassInfo.h in Headers */, - D226EA1C96A8459EBD20D5B95E862AC1 /* YYModel.h in Headers */, - 2F14759465123DEFE9B1F0AA86859D06 /* YYModel-umbrella.h in Headers */, + 1D46A8300E0CF1FD378302D751464882 /* NSObject+YYModel.h in Headers */, + 7446E224879C073F3A752B9FC9E1816F /* YYClassInfo.h in Headers */, + E84D15B3667634F52739081C2D799CC0 /* YYModel.h in Headers */, + CB3C4B0CEF443FFC863C683CE3598830 /* YYModel-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D1AE97EA588BBF8578B3EA9668A19035 /* Headers */ = { + 8E1A725A9F128503DC74941E67A7EFD2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 570F98E8ABC7F8F25A4288377D4A5CDC /* Pods-Project-umbrella.h in Headers */, + 71D64DDBA97B545036F11A21336E187D /* AVAsset+SJAVMediaExport.h in Headers */, + 3D2E0BB7FA4815E7A09CAAEB209398BF /* CALayer+SJBaseVideoPlayerExtended.h in Headers */, + 559C0BB4163A7EA958833D7BD58848D8 /* NSString+SJBaseVideoPlayerExtended.h in Headers */, + 7106F4AC9AED2C9B18F3DD9BCB9F30D8 /* NSTimer+SJAssetAdd.h in Headers */, + 1AFB06514B098EAA7BF3CF40FC4E0138 /* SJApplicationObservation.h in Headers */, + 3AC5C1A997A3ECD94C275E3FE06DD965 /* SJAVMediaPlaybackController.h in Headers */, + D5551C1C803FAE08CEDFA33CF2DBFAA8 /* SJAVMediaPlayer.h in Headers */, + 04610C32007126F13974A73ABCDB87E5 /* SJAVMediaPlayerLayerView.h in Headers */, + AA2A8B2CC4D7CC205C300D1DDFFE7F5B /* SJAVMediaPlayerLoader.h in Headers */, + 434B4696C072CB324099C63731287B40 /* SJAVPictureInPictureController.h in Headers */, + C78CC054D22F6A5C87C6254A4CE2B8CE /* SJAVPlayerItemObservation.h in Headers */, + D5C922CD1FCC8DF32D173E2FC5D8CCF9 /* SJAVPlayerObservation.h in Headers */, + 35EA19108709964999D49CCCBC82643B /* SJBaseVideoPlayer.h in Headers */, + 2D22E364B4CE3D675B62F8D10A03B76C /* SJBaseVideoPlayer+TestLog.h in Headers */, + 3D96DA941E1DCCE67FF738BFBBFB2766 /* SJBaseVideoPlayer-umbrella.h in Headers */, + 357A97074F4A20ADFBB14D8C03BED649 /* SJBaseVideoPlayerConst.h in Headers */, + C1504AFEE0D5CC7216E339AB08F2CDE1 /* SJBaseVideoPlayerResourceLoader.h in Headers */, + 135A965A45D940C93111DBF1A5057795 /* SJControlLayerAppearManagerDefines.h in Headers */, + EEC5ECC0489A639104A72E5722A26E1F /* SJControlLayerAppearStateManager.h in Headers */, + 5395F1692E6F44F67F16EAF69846D044 /* SJDanmakuItem.h in Headers */, + 593CAD971D37078E889A2F58B0022F17 /* SJDanmakuPopupController.h in Headers */, + A89006D4C30D09AC22609BD4103DB9FE /* SJDanmakuPopupControllerDefines.h in Headers */, + C2AF0D1706BA2A3DCCC65A2ED97BF8EE /* SJDeviceVolumeAndBrightness.h in Headers */, + CD2DFEC86CA42110FF7DF9CB5E35B505 /* SJDeviceVolumeAndBrightnessController.h in Headers */, + 760695C7282229CA40E848D0597F81E0 /* SJDeviceVolumeAndBrightnessControllerDefines.h in Headers */, + 2802057E450B550150D9CCAC060AF9A7 /* SJDeviceVolumeAndBrightnessTargetViewContext.h in Headers */, + C43239E3064C7665EEE1ECE5E7835791 /* SJFitOnScreenManager.h in Headers */, + 51F67DE47775247FE556CC00B48D2A39 /* SJFitOnScreenManagerDefines.h in Headers */, + C84D460BF2C604CDDB7D60B4340AC68E /* SJFlipTransitionManager.h in Headers */, + F435B9B997F0711078586E9FE02BEF8E /* SJFlipTransitionManagerDefines.h in Headers */, + C1B1B399D39A504F6640D5D217D30C16 /* SJGestureControllerDefines.h in Headers */, + 39FAA550F7BC544BD2FFE9E10F82B587 /* SJMediaPlaybackController.h in Headers */, + CA825C14F4EEE52FADC0C70F98351224 /* SJPictureInPictureControllerDefines.h in Headers */, + 5012C55B5BD05DDC88AAB40C3C4C80ED /* SJPlaybackHistoryController.h in Headers */, + 9B093CA639EED53534BDF58B02FACF0A /* SJPlaybackHistoryControllerDefines.h in Headers */, + CDECBB5F191834966AFF2EF401A49248 /* SJPlaybackObservation.h in Headers */, + AFB8B3759E41409BE52555D22C1AEB4A /* SJPlaybackRecord.h in Headers */, + 48891EAD88B4E3E7FD8A52CFA75D8C9F /* SJPlaybackRecordSaveHandler.h in Headers */, + FE852A5AAB1B2FB9933D40BAF8CBA15C /* SJPlayerAutoplayConfig.h in Headers */, + 7CAB1BF3C16B5E3C903478E26CAD205A /* SJPlayerView.h in Headers */, + DEC1C5C14184F9B59604B825E5C4344D /* SJPlayerViewInternal.h in Headers */, + CC970E6C6FCEC76D31237212CAB15C94 /* SJPlayModel.h in Headers */, + E5C7FEEB2E207D0FDB9FA8881E633200 /* SJPlayModel+SJPrivate.h in Headers */, + 565BD1C97304148E8D6DA113E8AB53F8 /* SJPlayModelPropertiesObserver.h in Headers */, + C5422310627E5E23BE869CC20A4D9F57 /* SJPromptingPopupController.h in Headers */, + A376BC3D11AF675B5BCA821767B40D42 /* SJPromptingPopupControllerDefines.h in Headers */, + 3370D95D43AF37CCC1F57724BF5D0C16 /* SJReachability.h in Headers */, + 4006BC41FDCE56ED2902A50C0010B61F /* SJReachabilityDefines.h in Headers */, + 47146A9B0B876E7BB23B84A1A43170EC /* SJRotationDefines.h in Headers */, + E2B4E608F687AFF8A3E56CA58CA14118 /* SJRotationFullscreenNavigationController.h in Headers */, + 9F9D8F6F78EDA33C111099698DD104BF /* SJRotationFullscreenViewController.h in Headers */, + 95CD4D0E8F9FF135FC420E0BD81BDD3C /* SJRotationFullscreenWindow.h in Headers */, + D3C7167D0458ED08D27C642ABC1103E4 /* SJRotationManager.h in Headers */, + 909176E6CA1B5706D558B815A27449C7 /* SJRotationManager_iOS_16_Later.h in Headers */, + 4E0EC8574037C735AA69DF29D53247FA /* SJRotationManager_iOS_9_15.h in Headers */, + 097A61313BFEBBC4815FD6385834DF82 /* SJRotationManagerDefines.h in Headers */, + AC5BE508E549CC55738377305D8EA4AF /* SJRotationManagerInternal.h in Headers */, + A19077B60871AE3580D90ACF879473E7 /* SJRotationObserver.h in Headers */, + 9D7D438A83B0BDCFDA71DAFD1E1A8375 /* SJSmallViewFloatingController.h in Headers */, + D6B6288E9486D4BE8A5A0A72A6E509E1 /* SJSmallViewFloatingControllerDefines.h in Headers */, + A78219E5A486EDED8D078C8F81D35685 /* SJSubtitleItem.h in Headers */, + 5B1F31BE2CB4681955E0EEA797DB5BE3 /* SJSubtitlePopupController.h in Headers */, + 6D816E9ADD706D5C63D37274F1C7E444 /* SJSubtitlePopupControllerDefines.h in Headers */, + 9915E5E6A0695E312CB12E45401A3A99 /* SJTextPopupController.h in Headers */, + 4A110D9DAD587309C6F2F33B4D211540 /* SJTextPopupControllerDefines.h in Headers */, + DC9AAD1C71CAC88157C9092B4C5FDCFE /* SJTimerControl.h in Headers */, + B38EE09BB79FF3A5ECDA7F08CD0F689F /* SJVideoDefinitionSwitchingInfo.h in Headers */, + C400A6E874AD3C748EAFA1C5B751DB91 /* SJVideoDefinitionSwitchingInfo+Private.h in Headers */, + EFB17F0F5714B5FD4C2EEC51D9F47291 /* SJVideoPlayerControlLayerProtocol.h in Headers */, + F0A42E3A458D39F56166818C3E4CBE9B /* SJVideoPlayerPlaybackControllerDefines.h in Headers */, + 0929B750E5F200049BF15F02E5894483 /* SJVideoPlayerPlayStatusDefines.h in Headers */, + A3E2F9E02FD197F245F4F7AF8C1BF453 /* SJVideoPlayerPresentView.h in Headers */, + 72867C602465496740C2F795C01B2E58 /* SJVideoPlayerPresentViewDefines.h in Headers */, + 1F77C12D048208762E2F360D86264EAC /* SJVideoPlayerRegistrar.h in Headers */, + B2F7B5C9ABBB05292A0248F3300381AA /* SJVideoPlayerURLAsset.h in Headers */, + 4BE7F9AD1A0750FFA87A0524AA4829E4 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h in Headers */, + ECA8DD983F50A8C89714227B81206829 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h in Headers */, + E8172FD6FDF825F110FC6FDB5C4C188C /* SJVideoPlayerURLAssetPrefetcher.h in Headers */, + 1F1BE42F8AE2C8C0BDD4BDD0B339AB25 /* SJViewControllerManager.h in Headers */, + 9CB8BCADAF5006DBFED9AD6FADAD0E78 /* SJViewControllerManagerDefines.h in Headers */, + E9095EA624F6552D6D17E6BE23886F0B /* SJWatermarkView.h in Headers */, + 11AC67524ECACE41B77C87556D313E07 /* SJWatermarkViewDefines.h in Headers */, + E123D34744F8417C1CB22633E4DF1741 /* UIScrollView+ListViewAutoplaySJAdd.h in Headers */, + 270CCB8EF9DDA1E2D020DDB3845C952A /* UIScrollView+SJBaseVideoPlayerExtended.h in Headers */, + 07636C8091A02E5E8C1069F8BF62348F /* UIView+SJBaseVideoPlayerExtended.h in Headers */, + 482B3492D0A2A5DC8CAB72F8C022A1CD /* UIViewController+SJBaseVideoPlayerExtended.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D48461F9D6D3078EC9F3EAC382B8ECF5 /* Headers */ = { + D1AE97EA588BBF8578B3EA9668A19035 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 00008D588AD40D7272DAB7799E2D080E /* AVAsset+SJAVMediaExport.h in Headers */, - 5F1793C8ED9C681EA449D5F37B1B4756 /* CALayer+SJBaseVideoPlayerExtended.h in Headers */, - 45D52C4261E3026498D1F7995D0397A8 /* NSString+SJBaseVideoPlayerExtended.h in Headers */, - ECEE214F8C3BA47E28F6DC36A6994FC8 /* NSTimer+SJAssetAdd.h in Headers */, - 21BC4D9AF858B4BD9CD98DB186D944ED /* SJAVMediaPlaybackController.h in Headers */, - 51045159A55F76A69D65453D35D47A4D /* SJAVMediaPlayer.h in Headers */, - 23987E01E6564B99A6F8BA0960A2F76C /* SJAVMediaPlayerLayerView.h in Headers */, - 6E13F7197A177E5EA425835BF2642987 /* SJAVMediaPlayerLoader.h in Headers */, - 723B4ED262C8B1F3153BC19F1D801B5A /* SJAVPictureInPictureController.h in Headers */, - A2C4C42BEA551A6F7428564672C4756A /* SJBaseVideoPlayer.h in Headers */, - 52C8E90A21DE4106E17B3984B3DF60BC /* SJBaseVideoPlayer+TestLog.h in Headers */, - 0B4436B0E210FD27C2A04F0950BA4B38 /* SJBaseVideoPlayer-umbrella.h in Headers */, - 4CF2F31AD174139E1765F09CFE87748F /* SJBaseVideoPlayerConst.h in Headers */, - C88F8965928A155BBBC214A5C606964D /* SJBaseVideoPlayerResourceLoader.h in Headers */, - 6DABD47DD7DAD4F168BC5A1A327358AE /* SJControlLayerAppearManagerDefines.h in Headers */, - 70240DD58B7F5DDD5BFD30FA87160AE6 /* SJControlLayerAppearStateManager.h in Headers */, - 061C5C418D8DAF3A6F01795544EAB247 /* SJDanmakuItem.h in Headers */, - 8337BF19E85B0B0001DA04DDD7B8AE2D /* SJDanmakuPopupController.h in Headers */, - 49F0FEB137DBE8F9ABABCEA7A6E23BA6 /* SJDanmakuPopupControllerDefines.h in Headers */, - 2088E785D4BD06C0729A49E20316267B /* SJDeviceVolumeAndBrightness.h in Headers */, - CFA781D1FE4E521053FD85F3937974ED /* SJDeviceVolumeAndBrightnessController.h in Headers */, - 8547BDB468B3D7D40626D5862B171D9F /* SJDeviceVolumeAndBrightnessControllerDefines.h in Headers */, - C45C63AAD3EB2BD06E982AC8E25F56A5 /* SJDeviceVolumeAndBrightnessTargetViewContext.h in Headers */, - 99EC3A05D89F3CF1CE132D2D52B779DC /* SJFitOnScreenManager.h in Headers */, - F3DE4CFD9EA614DA7D4A7EB3DB22CC01 /* SJFitOnScreenManagerDefines.h in Headers */, - 8ADEC767C9A3720C8A25243EE16E9687 /* SJFlipTransitionManager.h in Headers */, - 3A998E11D94137F2D587CD881D0672FF /* SJFlipTransitionManagerDefines.h in Headers */, - 0C80006E9A5595035E15FEE6BD497FD0 /* SJGestureControllerDefines.h in Headers */, - 205DF63FA4428C97E89205594923528F /* SJMediaPlaybackController.h in Headers */, - 111BA026F58227AA23BE6F48922FF088 /* SJPictureInPictureControllerDefines.h in Headers */, - F6F85B4651679644A18731A575F4BB32 /* SJPlaybackHistoryController.h in Headers */, - 0AC6F05C2086C1522E17C0AD1A56CD3E /* SJPlaybackHistoryControllerDefines.h in Headers */, - 388F547FDF974566344711CB77E2643D /* SJPlaybackObservation.h in Headers */, - A4CB81F8B40C8FD243A0CC29514CBE5D /* SJPlaybackRecord.h in Headers */, - 552575451E5BE604F361B824CA84C4CE /* SJPlaybackRecordSaveHandler.h in Headers */, - 613991FCF40E415A44843335DEF3C1CB /* SJPlayerAutoplayConfig.h in Headers */, - 6C44E2088736C5C9C6BB59CF94C2C493 /* SJPlayerView.h in Headers */, - E5066C92894EF71308FAE06D953ED2AA /* SJPlayerViewInternal.h in Headers */, - E011624745574D629DFEE0C1CEC6BD35 /* SJPlayModel.h in Headers */, - 2B49F6CF6AC9A69297AF3C54215A550B /* SJPlayModel+SJPrivate.h in Headers */, - 891BD3D9063D8D89E58DF99F8BCB5097 /* SJPlayModelPropertiesObserver.h in Headers */, - DE5CF4C7F5ADCD8F5B31A4975C952B85 /* SJPromptingPopupController.h in Headers */, - F88E43518AE4A362400E9C7587A72CEF /* SJPromptingPopupControllerDefines.h in Headers */, - 3D828A3D31C65728F872C4FB61615090 /* SJReachability.h in Headers */, - C1F0F73C6CD3B14433FD6F7773AFB929 /* SJReachabilityDefines.h in Headers */, - 89896551E03CBB7A300F2FDC5A82BEA4 /* SJRotationDefines.h in Headers */, - 7ABFE03525B2CBDCEED3660C14D26534 /* SJRotationFullscreenNavigationController.h in Headers */, - E78EB399152923F35CD51A75A10DB524 /* SJRotationFullscreenViewController.h in Headers */, - 06398DC0BFD56AFBBDC0ABEAE4CE2886 /* SJRotationFullscreenWindow.h in Headers */, - 4FA02B94669D76E565DCC570090A28A0 /* SJRotationManager.h in Headers */, - 3827A0EA00012E95FB331BF84616789C /* SJRotationManager_iOS_16_Later.h in Headers */, - 8A35500F1D7E9B3281153082C3DCE5E4 /* SJRotationManager_iOS_9_15.h in Headers */, - 2D1446274F6528F734D1ED8C0CE20118 /* SJRotationManagerDefines.h in Headers */, - 21EE371ABFD574B4D8D127C4DFD93155 /* SJRotationManagerInternal.h in Headers */, - B56C86E6ACCB3CD48907C82D3BAE8BD6 /* SJRotationObserver.h in Headers */, - 6283E5150E3558C2FBBDC89C0E134209 /* SJSmallViewFloatingController.h in Headers */, - 3F301A97EB4642758B5B3FCD766DCD56 /* SJSmallViewFloatingControllerDefines.h in Headers */, - 769D3BAB2E772B2B115A98C9304EFDB5 /* SJSubtitleItem.h in Headers */, - 0FC82F36C93AE00C8ACA1B80E305570E /* SJSubtitlePopupController.h in Headers */, - 859CD55E327105F2E9B731AA91E8AE07 /* SJSubtitlePopupControllerDefines.h in Headers */, - 3543A30E5125FA225A04A8483A966CFD /* SJTextPopupController.h in Headers */, - ADB51EA337F15E44CFEAD90223689B45 /* SJTextPopupControllerDefines.h in Headers */, - 75058433EA3557443649965FD17551CF /* SJTimerControl.h in Headers */, - 954F33D480B2DCA2D850EFD792125BC3 /* SJVideoDefinitionSwitchingInfo.h in Headers */, - CDD95DF1FFFA473ADD1D1A5A39560F74 /* SJVideoDefinitionSwitchingInfo+Private.h in Headers */, - 42B283DD8C772A237E2237D82DD7CA38 /* SJVideoPlayerControlLayerProtocol.h in Headers */, - 75F52E5BD89BCDF4E150CC408C72145B /* SJVideoPlayerPlaybackControllerDefines.h in Headers */, - 1E529D61D32293E44E9735E29878C326 /* SJVideoPlayerPlayStatusDefines.h in Headers */, - 17329F0A3964EA6E5167088A47393E0F /* SJVideoPlayerPresentView.h in Headers */, - B917570CD43723365FE5D62A169C74E1 /* SJVideoPlayerPresentViewDefines.h in Headers */, - D1BEB178AEC5CCE4A551169814AA7364 /* SJVideoPlayerRegistrar.h in Headers */, - 03544A61E54C9809B13BE65B2ADF8BE8 /* SJVideoPlayerURLAsset.h in Headers */, - C026727718B44CB114D97E4DD7F01973 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.h in Headers */, - CB05C35B4F563A3DDBE7434CEC2E084E /* SJVideoPlayerURLAsset+SJSubtitlesAdd.h in Headers */, - 86E43D742588A722E033C27F06CCA4C1 /* SJVideoPlayerURLAssetPrefetcher.h in Headers */, - 0F288179EF850FDF32E6A2D97F51FFA0 /* SJViewControllerManager.h in Headers */, - 5B80D31787C76580DB6910E9DD6FBC55 /* SJViewControllerManagerDefines.h in Headers */, - D772ACA5C0A70A4396B6EB8C33384A2E /* SJWatermarkView.h in Headers */, - C01AA781940C4AD0EC7D7A240A7E39ED /* SJWatermarkViewDefines.h in Headers */, - C81745FCB7FA4DF1894D3BBC0AE8EFE3 /* UIScrollView+ListViewAutoplaySJAdd.h in Headers */, - 47F8B85B280721A0350848AE1FC0BDD1 /* UIScrollView+SJBaseVideoPlayerExtended.h in Headers */, - 731C949688FA87733B718852BE10F4E6 /* UIView+SJBaseVideoPlayerExtended.h in Headers */, - 151EB6AA3F2D9E8425A369A6FFAC2A6D /* UIViewController+SJBaseVideoPlayerExtended.h in Headers */, + 570F98E8ABC7F8F25A4288377D4A5CDC /* Pods-Project-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1405,10 +1426,10 @@ buildRules = ( ); dependencies = ( - E49A5D337BD510C7BF5260F7FA16495E /* PBXTargetDependency */, - 779405E9E4B1036399CE542A6F966952 /* PBXTargetDependency */, - 41BAABC8575B4E4AFA207797E0DAA047 /* PBXTargetDependency */, - 7D1A2E268DA72F5097875DEF1E442B9C /* PBXTargetDependency */, + EBE0921E988D9A8484A0EDD39C6EB1BA /* PBXTargetDependency */, + 738A742796991D2BE304789A85F3489E /* PBXTargetDependency */, + FB361CDF20A4E754C123245A171814ED /* PBXTargetDependency */, + E0F94C1439A6AA99C86CD3F2E2C79550 /* PBXTargetDependency */, ); name = "Pods-Project"; productName = Pods_Project; @@ -1435,17 +1456,17 @@ }; 66EF777DAC384165A40F94DC7D0BD98F /* SJUIKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 2BA7D84E50FC0ABB23248BE2DA2622E4 /* Build configuration list for PBXNativeTarget "SJUIKit" */; + buildConfigurationList = 728FBA9AD49B9B2FB17EBEB2103D5C45 /* Build configuration list for PBXNativeTarget "SJUIKit" */; buildPhases = ( - 6F1AF7974859896CCA9212DC6636A0E0 /* Headers */, - 1266E1A565CD390D5A5ABFC13EC7E444 /* Sources */, - 39FCE9FDA6CA6707073791CF881A119A /* Frameworks */, - 04790F26C5E96950F5DA8DB384007A7E /* Resources */, + 30986056EC301C5F95AF5A32811F8E33 /* Headers */, + 43D57FD40F09CC7BE37F8D3380C8CF46 /* Sources */, + D34796174551971652D51736B60FFFA8 /* Frameworks */, + 3A4B73279A530BDC042CE421DC1368B2 /* Resources */, ); buildRules = ( ); dependencies = ( - 306C564233BCEC78739BF55C528A8D5B /* PBXTargetDependency */, + AABC73DF9E65A9A0CAF961C9F177CAB2 /* PBXTargetDependency */, ); name = SJUIKit; productName = SJUIKit; @@ -1454,18 +1475,18 @@ }; 76A445C38D13436849B0EAD21F555034 /* SJBaseVideoPlayer */ = { isa = PBXNativeTarget; - buildConfigurationList = 1D847D5BF0D88193C5749A564A7F7A2D /* Build configuration list for PBXNativeTarget "SJBaseVideoPlayer" */; + buildConfigurationList = 0215E0A226561194C743754EFCA3C63B /* Build configuration list for PBXNativeTarget "SJBaseVideoPlayer" */; buildPhases = ( - D48461F9D6D3078EC9F3EAC382B8ECF5 /* Headers */, - 4722B89DABB62A4A05C50D28C5E30495 /* Sources */, - C9B44021FA205D59E8991BE21F02C97B /* Frameworks */, - 80DE02D375375513E8FB72FEB13DC11B /* Resources */, + 8E1A725A9F128503DC74941E67A7EFD2 /* Headers */, + C2322C9E13719135063F212E9991A73E /* Sources */, + 6AA6177D28B904EE2A96C009EF348954 /* Frameworks */, + 45828EFBDDCEDBF79056FC904437A65F /* Resources */, ); buildRules = ( ); dependencies = ( - 4A223F8BEA99B98333658A628B3B6ECB /* PBXTargetDependency */, - 11A76E10F3CEF289C8F08FCE4862052A /* PBXTargetDependency */, + 9CA4878DE417F35D63504E916E197864 /* PBXTargetDependency */, + E076B1508404222D31777A83E0E69A85 /* PBXTargetDependency */, ); name = SJBaseVideoPlayer; productName = SJBaseVideoPlayer; @@ -1474,12 +1495,12 @@ }; 84B44807A12996D487A4A591A481D6A0 /* YYModel */ = { isa = PBXNativeTarget; - buildConfigurationList = A19B34706E397DE4B24C5D729BFFD519 /* Build configuration list for PBXNativeTarget "YYModel" */; + buildConfigurationList = 1BB7D77F6AF98D25965A7251F4D76292 /* Build configuration list for PBXNativeTarget "YYModel" */; buildPhases = ( - C3B6CDE63EA7A421E5C9550CA98A32A8 /* Headers */, - 29CB602CBCB4038BA6778553284E65FC /* Sources */, - 5D544A371D09E9FA2BEE8179890B94C7 /* Frameworks */, - A1C95591975E409B264D426650B2C327 /* Resources */, + 6EF8A0D3843B87607A78DEE176CE39D0 /* Headers */, + 0B68E7DA581DF995B54C58578568A424 /* Sources */, + BF57D3950FDC6BBE7F5C539949E547DF /* Frameworks */, + FD3B816B8BE50AA5F6D606E7CE90990E /* Resources */, ); buildRules = ( ); @@ -1496,8 +1517,8 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1300; - LastUpgradeCheck = 1300; + LastSwiftUpdateCheck = 1500; + LastUpgradeCheck = 1500; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 8.0"; @@ -1522,35 +1543,35 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 04790F26C5E96950F5DA8DB384007A7E /* Resources */ = { + 3A4B73279A530BDC042CE421DC1368B2 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 5139D6B936F8C307CB5CA54B33053D0F /* Resources */ = { + 45828EFBDDCEDBF79056FC904437A65F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 80DE02D375375513E8FB72FEB13DC11B /* Resources */ = { + 5139D6B936F8C307CB5CA54B33053D0F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - A1C95591975E409B264D426650B2C327 /* Resources */ = { + B8313271DBFE7B318CF632F8BC08DE3D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - B8313271DBFE7B318CF632F8BC08DE3D /* Resources */ = { + FD3B816B8BE50AA5F6D606E7CE90990E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -1560,117 +1581,120 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1266E1A565CD390D5A5ABFC13EC7E444 /* Sources */ = { + 0B68E7DA581DF995B54C58578568A424 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DCE16C2FC0AF6C4FE57EA0C53B52B517 /* NSAttributedString+SJMake.m in Sources */, - E2C6B273612461D60B143BD2F3ADB981 /* NSObject+SJObserverHelper.m in Sources */, - 358E41ADD5458C0928BEF483075FF5B8 /* SJAttributesRecorder.m in Sources */, - 67EBEF8E1841F383EB3DED218620F8AF /* SJAttributeWorker.m in Sources */, - E3408E2CA6F5200BC151F80D853C3E1E /* SJPresentationQueue.m in Sources */, - 779D48BA693A0607C217F2F1E734090E /* SJQueue.m in Sources */, - 7901CC78CC3A311B24B0BF7545ADDAA5 /* SJRunLoopTaskQueue.m in Sources */, - A274A85067429517BEB7EA6C05970CCE /* SJSQLite3.m in Sources */, - 06C609E97EFDA11DDA2CCA39059ECD12 /* SJSQLite3+FoundationExtended.m in Sources */, - 0625718C1D8801EFB264C42CADC379DE /* SJSQLite3+QueryExtended.m in Sources */, - 40D3761E3166DCDEE559CD16D23A675B /* SJSQLite3+RemoveExtended.m in Sources */, - 96684A16CB1CF33D4A000A49EDDCB280 /* SJSQLite3+TableExtended.m in Sources */, - D684C420523BBD7964F914E69EE6276A /* SJSQLite3ColumnOrder.m in Sources */, - EC8FFE6B84F897119E5991BFD090B1C0 /* SJSQLite3Condition.m in Sources */, - 7202BB5CAD832C5E32E6991CAEC49CAC /* SJSQLite3Logger.m in Sources */, - 01916BAE257279BCE7988587573889F3 /* SJSQLite3TableClassCache.m in Sources */, - 2C7B3F3351C69EF5C60940D93105447B /* SJSQLite3TableInfoCache.m in Sources */, - 4AAB552E17B1561BF5555167D97F2CEC /* SJSQLiteColumnInfo.m in Sources */, - C0688511BA9D9F3741B305F02FEF795A /* SJSQLiteCore.m in Sources */, - EB78C2AAA4BFF2538D1535664881787D /* SJSQLiteErrors.m in Sources */, - 94FEB139478E0903AEFC890AE4DB7C01 /* SJSQLiteObjectInfo.m in Sources */, - 8BA50D1252BB3BF4517BBA25DD28D6BD /* SJSQLiteTableInfo.m in Sources */, - 28DB9584791BE5246F8347BA905A7593 /* SJSQLiteTableModelConstraints.m in Sources */, - 69B823960E316BF040DCD854F1A3D365 /* SJTaskQueue.m in Sources */, - 9BAB5F49373D54E1E40A848ABD8C5056 /* SJUIKit-dummy.m in Sources */, - 9770782C08561A646048446F1C2D6938 /* SJUIKitTextMaker.m in Sources */, - 158A6D5A2543B3720E315C6626438D62 /* SJUTAttributes.m in Sources */, - 07B4522624450626D505D4394655B685 /* SJUTRangeHandler.m in Sources */, - 66EDB22B9E72FC68143242E96189BDA2 /* SJUTRecorder.m in Sources */, - 5C2C4FE905A71035C07AFAA30A3726F4 /* SJUTRegexHandler.m in Sources */, - 6B5DE529A22C89C67A0CE1FF48140478 /* SJUTUtils.m in Sources */, + 1D05D7E1ED258B65FF3DF0A6067E57A5 /* NSObject+YYModel.m in Sources */, + BF4C4418DF1C0298A591F1CA86635F10 /* YYClassInfo.m in Sources */, + 8860FC28BD96C648E1C488E22AE2CC17 /* YYModel-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 29CB602CBCB4038BA6778553284E65FC /* Sources */ = { + 43D57FD40F09CC7BE37F8D3380C8CF46 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9DE624FB9037947D5616CD7404B97D43 /* NSObject+YYModel.m in Sources */, - 925427A3217592EB0D76F0F3E77E461D /* YYClassInfo.m in Sources */, - 68B015F2D2ED151BFF702639EDF408C0 /* YYModel-dummy.m in Sources */, + 2CAD093FC41FD72CCDADE714AAFCA741 /* NSAttributedString+SJMake.m in Sources */, + 8D6E10ECF42967A65FE1E3FB882327F4 /* NSObject+SJObserverHelper.m in Sources */, + 3C70A81DA32FCCC55833469DA96EA4AD /* SJAttributesRecorder.m in Sources */, + 93B764BD3F11201852424F7BF5DF0A7E /* SJAttributeWorker.m in Sources */, + AB3D29D8F3F798E34AFBE6CF1587E459 /* SJPresentationQueue.m in Sources */, + D83F38ED02271807B37B66EF2832EA32 /* SJQueue.m in Sources */, + 123A08E2700EF1E7A60C09848FFE0135 /* SJRunLoopTaskQueue.m in Sources */, + 2AF5CB7246861E4DC39DFFC9FB88DB79 /* SJSQLite3.m in Sources */, + 5C846FB434FAFAD03BD8BDE12A1B23D0 /* SJSQLite3+FoundationExtended.m in Sources */, + FD867C34EBD543295D6559A8BA7B0E2E /* SJSQLite3+QueryExtended.m in Sources */, + DAFA6B4C4ACD01419341B89208571834 /* SJSQLite3+RemoveExtended.m in Sources */, + 718BDE36F51F244715356062CF977B83 /* SJSQLite3+TableExtended.m in Sources */, + B155B01758A840A864FAC728352D9190 /* SJSQLite3ColumnOrder.m in Sources */, + F9A409406BB6631E8AEA62F70EE66813 /* SJSQLite3Condition.m in Sources */, + 6B5C45599C2E67C2DE706CD1CB1B1D48 /* SJSQLite3Logger.m in Sources */, + AD0ECF59632B0E2B3B09757F42609BCA /* SJSQLite3TableClassCache.m in Sources */, + 4DDE5E354D5E0829BFAF2F4D88DF3542 /* SJSQLite3TableInfoCache.m in Sources */, + 1DF5D19543F6A1804E2C726A572046AA /* SJSQLiteColumnInfo.m in Sources */, + A835A361729FDB66D6EBACD7DFCE9574 /* SJSQLiteCore.m in Sources */, + 07371EAC58718090962F70D8CE4555D0 /* SJSQLiteErrors.m in Sources */, + E3D797FA48E86FDEBFD2E170614B9D1C /* SJSQLiteObjectInfo.m in Sources */, + F7284034679F215683A5D08AA12B3667 /* SJSQLiteTableInfo.m in Sources */, + 059F68A3062F9F4C4F8788866708D40C /* SJSQLiteTableModelConstraints.m in Sources */, + 099396753A7CA8DBE542E4F0C1DD96E7 /* SJTaskQueue.m in Sources */, + 9A8F80CE9D18A6A3BB94DA0F5C7DA57D /* SJUIKit-dummy.m in Sources */, + E16A54D23A629EF43DCC821C01955B18 /* SJUIKitTextMaker.m in Sources */, + 9AF7CFC03DD481D035038953DF1898C0 /* SJUTAttributes.m in Sources */, + 53088E22BF18AE244D161A150B8FF04E /* SJUTRangeHandler.m in Sources */, + EC56F3FCD0D131B5E7073899376B1731 /* SJUTRecorder.m in Sources */, + 487267056CE6C4CD155FFF5E9416A054 /* SJUTRegexHandler.m in Sources */, + EBEFA4CF576D72B624F5C49A24E2356B /* SJUTUtils.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4722B89DABB62A4A05C50D28C5E30495 /* Sources */ = { + C2322C9E13719135063F212E9991A73E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 912033602E08C2310A8B264EC147B4E8 /* AVAsset+SJAVMediaExport.m in Sources */, - BD19EAE8EB5B5ECA194BE9F98CF3CDC1 /* CALayer+SJBaseVideoPlayerExtended.m in Sources */, - 0B1A38EAB0F66E569B536CCC0AE722AB /* NSString+SJBaseVideoPlayerExtended.m in Sources */, - 8EA87777669F6174E2F50D99DFAA04A4 /* NSTimer+SJAssetAdd.m in Sources */, - 47719F5C30BF2D6AC42470CA9F4D3943 /* SJAVMediaPlaybackController.m in Sources */, - 9BCEBC1BFC65F446F67BF2851F3271AB /* SJAVMediaPlayer.m in Sources */, - 158E134624929413C52A416743935C9E /* SJAVMediaPlayerLayerView.m in Sources */, - E89B906706A11DFE0B818995F1A3D8C6 /* SJAVMediaPlayerLoader.m in Sources */, - D22F272D35C1FE16BADBB5EFFB602E41 /* SJAVPictureInPictureController.m in Sources */, - 294C5640DE132F932E76C5F1252A6ADD /* SJBaseVideoPlayer.m in Sources */, - 2D98857641CBECF8A326178C0C32198A /* SJBaseVideoPlayer+TestLog.m in Sources */, - 6455A298CB5DADBD2088084CFB7F175C /* SJBaseVideoPlayer-dummy.m in Sources */, - 4BDB767076A5AD6B387EA68F05859FF4 /* SJBaseVideoPlayerConst.m in Sources */, - 32141800C09A83271489FDA56AEF759A /* SJBaseVideoPlayerResourceLoader.m in Sources */, - D7AC50DCCEB34BAA0123F35D90B04CA7 /* SJControlLayerAppearStateManager.m in Sources */, - A21241001FEDFB4B628A120F917F1BB6 /* SJDanmakuItem.m in Sources */, - 314D5524FA341628134E2C93FF00A981 /* SJDanmakuPopupController.m in Sources */, - DE623FFF2781576C5359E35A2D4E4877 /* SJDeviceVolumeAndBrightness.m in Sources */, - FA779E2807458CEA57A53DF27EBAFF07 /* SJDeviceVolumeAndBrightnessController.m in Sources */, - 69B7B9968E7D24EDDEB9A2B2557D8630 /* SJDeviceVolumeAndBrightnessTargetViewContext.m in Sources */, - 3E0A9378DB8C823A63F0D097DC284702 /* SJFitOnScreenManager.m in Sources */, - 83AA38400B0CA5FB03AFDA4473EE601E /* SJFlipTransitionManager.m in Sources */, - 654C701352321F93C0684368D5FF1268 /* SJMediaPlaybackController.m in Sources */, - 7B8104E2D0D350D981A33451A1E4C625 /* SJPlaybackHistoryController.m in Sources */, - D20D5D0FD5D1F6222CEC27B79D9F5360 /* SJPlaybackObservation.m in Sources */, - 7A1B4B99BACAEC8B82888430B370ACF8 /* SJPlaybackRecord.m in Sources */, - DB05DD98E56D6FE70ECDEBF66E5366AE /* SJPlaybackRecordSaveHandler.m in Sources */, - 3A3D036C132FB0727ED31C3E37058654 /* SJPlayerAutoplayConfig.m in Sources */, - A6613906831BEF3AAD097545BE2EE872 /* SJPlayerView.m in Sources */, - 569F78AA4EE68F2A81D795C208CAC993 /* SJPlayModel.m in Sources */, - 2C28754DCC0F6B4070F1E88572B9ED6B /* SJPlayModelPropertiesObserver.m in Sources */, - 08543324729B8C461C93D303EF5B44A8 /* SJPromptingPopupController.m in Sources */, - 2D3B2ADFC5125BA048F2D820C0986B21 /* SJReachability.m in Sources */, - 2CAD6A1A1A69FE5E2C8CD6E6DFB61D3F /* SJRotationDefines.m in Sources */, - 0E0F4ED6042E83D68416A0A99C243CA3 /* SJRotationFullscreenNavigationController.m in Sources */, - 67E5081EA00B1DE4C34E788542BD9019 /* SJRotationFullscreenViewController.m in Sources */, - F8496C3F0EDFD1B063869FC23425844B /* SJRotationFullscreenWindow.m in Sources */, - EA1EEF283E7B3D486D7BA6C19B0EB8D1 /* SJRotationManager.m in Sources */, - 227DEFB060BD3F7EDD34F8C9BDFA8932 /* SJRotationManager_iOS_16_Later.m in Sources */, - 899CA8AF92FB1C67E1D10D36CD1C33A8 /* SJRotationManager_iOS_9_15.m in Sources */, - C3084BFD59140D8B2EB241B8BA7426D8 /* SJRotationObserver.m in Sources */, - B0F3E5CE532BAACDCAC92051166C7667 /* SJSmallViewFloatingController.m in Sources */, - DCD968E7177B5436E304D6D2FF485077 /* SJSubtitleItem.m in Sources */, - 9F96BDA6480F6C97EF86959328523F67 /* SJSubtitlePopupController.m in Sources */, - 1860390F3DCFEBE31B5C7ED4FB16EB7A /* SJTextPopupController.m in Sources */, - 2A8F4A6A3A4C9B0F97047857BE5B3CCE /* SJTimerControl.m in Sources */, - 0FB9F82F905F1114FC738CC6EEFD7D98 /* SJVideoDefinitionSwitchingInfo.m in Sources */, - EC119BF72219A37F3E8362EFECC3F1A2 /* SJVideoPlayerPresentView.m in Sources */, - 485179834606815E6DE478B8F651C780 /* SJVideoPlayerRegistrar.m in Sources */, - C0B8EF391D6AAD9899608925BD1BAE24 /* SJVideoPlayerURLAsset.m in Sources */, - B746727C2E7B9B6544003265EB421101 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m in Sources */, - A6D404E6D4CAC32F25EE1EC297C438AF /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m in Sources */, - 452EC7383EF26071E7EB857A45B1D47E /* SJVideoPlayerURLAssetPrefetcher.m in Sources */, - 4A1E58FD011993DBC713096742F01F87 /* SJViewControllerManager.m in Sources */, - 95BF3037ED786EC6BB69813F57F2B01C /* SJWatermarkView.m in Sources */, - F920324BBE846E3EDD03B53AAAA876F7 /* UIScrollView+ListViewAutoplaySJAdd.m in Sources */, - 13C0E607A4CD2B39A71148E6DA1BDE88 /* UIScrollView+SJBaseVideoPlayerExtended.m in Sources */, - 7C21FB63A807C1A11914142B6CCEB958 /* UIView+SJBaseVideoPlayerExtended.m in Sources */, - 7EDF9BDC1BD91D9C003106596023D935 /* UIViewController+SJBaseVideoPlayerExtended.m in Sources */, + 6778FAC652F98309F0F5499FFD26ED77 /* AVAsset+SJAVMediaExport.m in Sources */, + ED466A7C9B4FAC294EC18D677880B7EE /* CALayer+SJBaseVideoPlayerExtended.m in Sources */, + 183976A16325026CA9B89275CA9BB263 /* NSString+SJBaseVideoPlayerExtended.m in Sources */, + FF435A3A368A363C770E33571A63B8D9 /* NSTimer+SJAssetAdd.m in Sources */, + C646689217979041815554BBAAD97AF7 /* SJApplicationObservation.m in Sources */, + A4C9059322EF16F0D58E06000E16A49E /* SJAVMediaPlaybackController.m in Sources */, + 6419B90B7894D9612E08899554A28513 /* SJAVMediaPlayer.m in Sources */, + 1CE8A610ECE8BE559692B4E76BB2E437 /* SJAVMediaPlayerLayerView.m in Sources */, + D8338A17C4730A4DD394714216C9914A /* SJAVMediaPlayerLoader.m in Sources */, + 5E9889EB2AAEF68256537E742D8DDE12 /* SJAVPictureInPictureController.m in Sources */, + 5B3BACA4E1E320EE1F728C90763568ED /* SJAVPlayerItemObservation.m in Sources */, + 4734A8BA39C75A38EC02EA50A830C71C /* SJAVPlayerObservation.m in Sources */, + 734C47FBDCFF10D5291AA552B5CE33C0 /* SJBaseVideoPlayer.m in Sources */, + E6ADFB18DD69729CACF21724CE944A9A /* SJBaseVideoPlayer+TestLog.m in Sources */, + 088E17E835DFE7C420450FF1DAE6D4F1 /* SJBaseVideoPlayer-dummy.m in Sources */, + 200FC7FE4C99A4072421FFDB12EA5DA6 /* SJBaseVideoPlayerConst.m in Sources */, + 74815EE03E4BB313703557067FE2BE7F /* SJBaseVideoPlayerResourceLoader.m in Sources */, + 79A4CB0FB38413EE360DD0192EED6741 /* SJControlLayerAppearStateManager.m in Sources */, + D6417341352405B571B8121AC6484358 /* SJDanmakuItem.m in Sources */, + 34A48A68DB09201CAF40C4B9691451D0 /* SJDanmakuPopupController.m in Sources */, + DAEA562E7035610910AC9A0F40D8A960 /* SJDeviceVolumeAndBrightness.m in Sources */, + 2AC21460BAB800CBAA40CE4F9828745C /* SJDeviceVolumeAndBrightnessController.m in Sources */, + C163C44E4842D8D49F4CAF34E6FFE82C /* SJDeviceVolumeAndBrightnessTargetViewContext.m in Sources */, + 71195E84A9434808D034CE1F2D02B25A /* SJFitOnScreenManager.m in Sources */, + AF4F49059332514A5862627F33794D9C /* SJFlipTransitionManager.m in Sources */, + 95BC24F0ECE56ECD4E57B91AA819A3DF /* SJMediaPlaybackController.m in Sources */, + DE5773041CF8FF87AE164D62F1F66986 /* SJPlaybackHistoryController.m in Sources */, + ADF98CD58B246CAC99E7F4604471D2E4 /* SJPlaybackObservation.m in Sources */, + 852487026BE741AFBFB59DB175E40CA9 /* SJPlaybackRecord.m in Sources */, + DE12D9A0711222B3B1F28ABACEF3CCAC /* SJPlaybackRecordSaveHandler.m in Sources */, + CA8FBC507E99845D429DC8CD0E9B9C90 /* SJPlayerAutoplayConfig.m in Sources */, + B1A41A8DCC5BB8C9E48A1BB9B18603B1 /* SJPlayerView.m in Sources */, + 5E3E1BD7A7A5422ED5760638D9B9AD8B /* SJPlayModel.m in Sources */, + 9186E5A7DAB422FD37E776BC4558D3D1 /* SJPlayModelPropertiesObserver.m in Sources */, + BE0BB86E342A7B6C3510E3F7552CD22E /* SJPromptingPopupController.m in Sources */, + 11F5EF937F47A9903C2F8DF1A880FE14 /* SJReachability.m in Sources */, + BB1CB7F2D76A5FC2E142CA7823836475 /* SJRotationDefines.m in Sources */, + FBEA3A422B03003F075EDC6930C5ECC0 /* SJRotationFullscreenNavigationController.m in Sources */, + A025BE277C9B1AB9192EA191F333CA3F /* SJRotationFullscreenViewController.m in Sources */, + 17311B0599BDDF2A79B47FE47FC3F965 /* SJRotationFullscreenWindow.m in Sources */, + A7AFAE39F73545667EF7D97EF67E3765 /* SJRotationManager.m in Sources */, + 0D8AC474F6490913C6903A98A24DE516 /* SJRotationManager_iOS_16_Later.m in Sources */, + 3FE679953379701EAA2EC0F3BFA4258A /* SJRotationManager_iOS_9_15.m in Sources */, + B1DB1863DFEEB548339E71FF0A8FB551 /* SJRotationObserver.m in Sources */, + 80AC09323DC630F000DDC4A37345F54A /* SJSmallViewFloatingController.m in Sources */, + FC8904F38FA7F0CDFEF982063A3568A3 /* SJSubtitleItem.m in Sources */, + 452CDC14C1C2A9D3631CC0F35F748897 /* SJSubtitlePopupController.m in Sources */, + ED826EFA7B81D6757BF2857016E1DB11 /* SJTextPopupController.m in Sources */, + F672A4B8C9E6352084A075CB9F4DA0DA /* SJTimerControl.m in Sources */, + DC8EDB60EB7EC318C1650B8A7D88AA44 /* SJVideoDefinitionSwitchingInfo.m in Sources */, + 350B963389BC630F980639204F4CFA42 /* SJVideoPlayerPresentView.m in Sources */, + D9031EDAD7F074F66D4DAE89B0A15FBC /* SJVideoPlayerRegistrar.m in Sources */, + 6F9DB08C0457A3692762C319137256A4 /* SJVideoPlayerURLAsset.m in Sources */, + 5BBBD3077A250CC0C2BD9FB731BE3688 /* SJVideoPlayerURLAsset+SJAVMediaPlaybackAdd.m in Sources */, + 006300B4A61B05346F15877A9BEF53A6 /* SJVideoPlayerURLAsset+SJSubtitlesAdd.m in Sources */, + F7B1F7F7183C88F312485C76BFCCAE6B /* SJVideoPlayerURLAssetPrefetcher.m in Sources */, + D3D1FDA9C52D0FABEFEA61B7BA58ED83 /* SJViewControllerManager.m in Sources */, + 96E526CE8A638F61F39501432234CAA2 /* SJWatermarkView.m in Sources */, + 42806A3D26D5D86A59D078B05225AB35 /* UIScrollView+ListViewAutoplaySJAdd.m in Sources */, + F1179DA35940CCDD33D64CC3EC1A9673 /* UIScrollView+SJBaseVideoPlayerExtended.m in Sources */, + 63180C619DB2FE88E6035E2F2D78A666 /* UIView+SJBaseVideoPlayerExtended.m in Sources */, + B36EAFC732B4F1E8C4B2F301B1B9AA90 /* UIViewController+SJBaseVideoPlayerExtended.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1703,115 +1727,52 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 11A76E10F3CEF289C8F08FCE4862052A /* PBXTargetDependency */ = { + 738A742796991D2BE304789A85F3489E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SJUIKit; - target = 66EF777DAC384165A40F94DC7D0BD98F /* SJUIKit */; - targetProxy = D00BB6F7DFA23B4836CE23AC5E1DE0D4 /* PBXContainerItemProxy */; + name = SJBaseVideoPlayer; + target = 76A445C38D13436849B0EAD21F555034 /* SJBaseVideoPlayer */; + targetProxy = 6E67B2027549E3EB870FAE778B8BD3A8 /* PBXContainerItemProxy */; + }; + 9CA4878DE417F35D63504E916E197864 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Masonry; + target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; + targetProxy = 07937A642D35DC6D2341DA61BF15C2AD /* PBXContainerItemProxy */; }; - 306C564233BCEC78739BF55C528A8D5B /* PBXTargetDependency */ = { + AABC73DF9E65A9A0CAF961C9F177CAB2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = YYModel; target = 84B44807A12996D487A4A591A481D6A0 /* YYModel */; - targetProxy = FA91BC0EC0182EA003863CA5CDA0FECF /* PBXContainerItemProxy */; + targetProxy = 1913089E31D08CD2CF8667E5321B8BED /* PBXContainerItemProxy */; }; - 41BAABC8575B4E4AFA207797E0DAA047 /* PBXTargetDependency */ = { + E076B1508404222D31777A83E0E69A85 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SJUIKit; target = 66EF777DAC384165A40F94DC7D0BD98F /* SJUIKit */; - targetProxy = FC4944E7EAE259D663C699C72DADCAF2 /* PBXContainerItemProxy */; + targetProxy = F28C5CDA6CA5F834300114E3825D95A1 /* PBXContainerItemProxy */; }; - 4A223F8BEA99B98333658A628B3B6ECB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Masonry; - target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = A62ADF9993080A4493C86CE1AF99CAF8 /* PBXContainerItemProxy */; - }; - 779405E9E4B1036399CE542A6F966952 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SJBaseVideoPlayer; - target = 76A445C38D13436849B0EAD21F555034 /* SJBaseVideoPlayer */; - targetProxy = 9101822D13184B97F2EBF580ACB1FD91 /* PBXContainerItemProxy */; - }; - 7D1A2E268DA72F5097875DEF1E442B9C /* PBXTargetDependency */ = { + E0F94C1439A6AA99C86CD3F2E2C79550 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = YYModel; target = 84B44807A12996D487A4A591A481D6A0 /* YYModel */; - targetProxy = 2BD07D731762A4F301AA8592B9593876 /* PBXContainerItemProxy */; + targetProxy = B117892DB7D2745226DCE67FE8F7858C /* PBXContainerItemProxy */; }; - E49A5D337BD510C7BF5260F7FA16495E /* PBXTargetDependency */ = { + EBE0921E988D9A8484A0EDD39C6EB1BA /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Masonry; target = 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */; - targetProxy = 2C5FD23EE7B835DBBE4507B574EAC949 /* PBXContainerItemProxy */; + targetProxy = 60638268C36FDCB47BD538F6F9F16C72 /* PBXContainerItemProxy */; + }; + FB361CDF20A4E754C123245A171814ED /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SJUIKit; + target = 66EF777DAC384165A40F94DC7D0BD98F /* SJUIKit */; + targetProxy = AE450E4C7509D9D73E6CD91D17F308D1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0B3576A65811A547AB359CBA61EB77EE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3AB1E81F031EF5E263FBE28E223B3E45 /* YYModel.release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/YYModel/YYModel-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/YYModel/YYModel-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/YYModel/YYModel.modulemap"; - PRODUCT_MODULE_NAME = YYModel; - PRODUCT_NAME = YYModel; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 217736884B7F7421E63D0156971274C9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 37C6D50EF68993B5AE410ECCFAE117F9 /* YYModel.debug.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/YYModel/YYModel-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/YYModel/YYModel-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/YYModel/YYModel.modulemap"; - PRODUCT_MODULE_NAME = YYModel; - PRODUCT_NAME = YYModel; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 26AFE2E5EE35B779C03B0081D94FC236 /* Release */ = { + 046C098B413380808A3196EB149A3048 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 2A9AEA55B85EBB2EE44094D447FFBFC7 /* SJBaseVideoPlayer.release.xcconfig */; buildSettings = { @@ -1910,7 +1871,7 @@ }; name = Debug; }; - 5665D5366C3799517A3C076513A44EB3 /* Release */ = { + 5E5E1CC10D24B91BDC10ACC1CB816FF4 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 5F5F892C1962DAD56EAF09160309F30D /* SJUIKit.release.xcconfig */; buildSettings = { @@ -2004,10 +1965,11 @@ }; name = Release; }; - 6654A842B1B46538F05732B457C83076 /* Debug */ = { + 872EFE3900EE1A29FDD37D107371F372 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4B6DA01462683D7BC3E32591A65A1F4F /* SJBaseVideoPlayer.debug.xcconfig */; + baseConfigurationReference = 37FA2CC5391E1250E2468E61B005FACB /* Pods-Project.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2018,31 +1980,31 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-Project/Pods-Project-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer.modulemap"; - PRODUCT_MODULE_NAME = SJBaseVideoPlayer; - PRODUCT_NAME = SJBaseVideoPlayer; + MODULEMAP_FILE = "Target Support Files/Pods-Project/Pods-Project.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 872EFE3900EE1A29FDD37D107371F372 /* Release */ = { + 8FF86E3A9BCDB79101FD0FD5C146E518 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 37FA2CC5391E1250E2468E61B005FACB /* Pods-Project.release.xcconfig */; + baseConfigurationReference = 3AB1E81F031EF5E263FBE28E223B3E45 /* YYModel.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -2051,19 +2013,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-Project/Pods-Project-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/YYModel/YYModel-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/YYModel/YYModel-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Project/Pods-Project.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/YYModel/YYModel.modulemap"; + PRODUCT_MODULE_NAME = YYModel; + PRODUCT_NAME = YYModel; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -2168,7 +2129,38 @@ }; name = Release; }; - F8D20A0AF2106272D4E1B0F403FC55E7 /* Debug */ = { + E063522A5B632E6E475F2A062ED800CF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 37C6D50EF68993B5AE410ECCFAE117F9 /* YYModel.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/YYModel/YYModel-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/YYModel/YYModel-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/YYModel/YYModel.modulemap"; + PRODUCT_MODULE_NAME = YYModel; + PRODUCT_NAME = YYModel; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + E1B8333BC70045CC382DE0ECEF2C57C9 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = C4D5D2C18119CF798372487723EC661C /* SJUIKit.debug.xcconfig */; buildSettings = { @@ -2199,23 +2191,55 @@ }; name = Debug; }; + E21BDBFD24FA99E5AA6CFDC238256FC4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4B6DA01462683D7BC3E32591A65A1F4F /* SJBaseVideoPlayer.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/SJBaseVideoPlayer/SJBaseVideoPlayer.modulemap"; + PRODUCT_MODULE_NAME = SJBaseVideoPlayer; + PRODUCT_NAME = SJBaseVideoPlayer; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1D847D5BF0D88193C5749A564A7F7A2D /* Build configuration list for PBXNativeTarget "SJBaseVideoPlayer" */ = { + 0215E0A226561194C743754EFCA3C63B /* Build configuration list for PBXNativeTarget "SJBaseVideoPlayer" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6654A842B1B46538F05732B457C83076 /* Debug */, - 26AFE2E5EE35B779C03B0081D94FC236 /* Release */, + E21BDBFD24FA99E5AA6CFDC238256FC4 /* Debug */, + 046C098B413380808A3196EB149A3048 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2BA7D84E50FC0ABB23248BE2DA2622E4 /* Build configuration list for PBXNativeTarget "SJUIKit" */ = { + 1BB7D77F6AF98D25965A7251F4D76292 /* Build configuration list for PBXNativeTarget "YYModel" */ = { isa = XCConfigurationList; buildConfigurations = ( - F8D20A0AF2106272D4E1B0F403FC55E7 /* Debug */, - 5665D5366C3799517A3C076513A44EB3 /* Release */, + E063522A5B632E6E475F2A062ED800CF /* Debug */, + 8FF86E3A9BCDB79101FD0FD5C146E518 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -2238,11 +2262,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A19B34706E397DE4B24C5D729BFFD519 /* Build configuration list for PBXNativeTarget "YYModel" */ = { + 728FBA9AD49B9B2FB17EBEB2103D5C45 /* Build configuration list for PBXNativeTarget "SJUIKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 217736884B7F7421E63D0156971274C9 /* Debug */, - 0B3576A65811A547AB359CBA61EB77EE /* Release */, + E1B8333BC70045CC382DE0ECEF2C57C9 /* Debug */, + 5E5E1CC10D24B91BDC10ACC1CB816FF4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Project/Pods/Pods.xcodeproj/xcuserdata/changsanjiang.xcuserdatad/xcschemes/Masonry.xcscheme b/Project/Pods/Pods.xcodeproj/xcuserdata/changsanjiang.xcuserdatad/xcschemes/Masonry.xcscheme index c61c479..77915a8 100644 --- a/Project/Pods/Pods.xcodeproj/xcuserdata/changsanjiang.xcuserdatad/xcschemes/Masonry.xcscheme +++ b/Project/Pods/Pods.xcodeproj/xcuserdata/changsanjiang.xcuserdatad/xcschemes/Masonry.xcscheme @@ -1,6 +1,6 @@ + + + + + + diff --git a/SJBaseVideoPlayer.podspec b/SJBaseVideoPlayer.podspec index adc191b..a28c9eb 100644 --- a/SJBaseVideoPlayer.podspec +++ b/SJBaseVideoPlayer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'SJBaseVideoPlayer' - s.version = '3.7.6.1' + s.version = '3.7.7' s.summary = 'video player.' s.description = 'https://github.com/changsanjiang/SJBaseVideoPlayer/blob/master/README.md' s.homepage = 'https://github.com/changsanjiang/SJBaseVideoPlayer' diff --git a/SJBaseVideoPlayer/.DS_Store b/SJBaseVideoPlayer/.DS_Store index 695fbc3..8b26ba7 100644 Binary files a/SJBaseVideoPlayer/.DS_Store and b/SJBaseVideoPlayer/.DS_Store differ diff --git a/SJBaseVideoPlayer/AVPlayer/.DS_Store b/SJBaseVideoPlayer/AVPlayer/.DS_Store new file mode 100644 index 0000000..6201732 Binary files /dev/null and b/SJBaseVideoPlayer/AVPlayer/.DS_Store differ diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.h b/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.h index 4479093..1e40462 100644 --- a/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.h +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.h @@ -1,8 +1,8 @@ // // SJAVMediaPlayer.h -// Pods +// SJBaseVideoPlayer // -// Created by 畅三江 on 2020/2/18. +// Created by 畅三江 on 2024/3/18. // #import "SJMediaPlaybackController.h" @@ -16,6 +16,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) SJPlaybackType playbackType; @property (nonatomic) NSTimeInterval minBufferedDuration; @property (nonatomic) BOOL accurateSeeking; +@property (nonatomic) BOOL pauseWhenAppDidEnterBackground; - (void)seekToTime:(CMTime)time toleranceBefore:(CMTime)toleranceBefore toleranceAfter:(CMTime)toleranceAfter completionHandler:(void (^_Nullable)(BOOL))completionHandler; @end diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.m b/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.m index 9be08c8..36bb098 100644 --- a/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.m +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVMediaPlayer.m @@ -1,572 +1,364 @@ // // SJAVMediaPlayer.m -// Pods +// SJBaseVideoPlayer // -// Created by 畅三江 on 2020/2/18. +// Created by 畅三江 on 2024/3/18. // #import "SJAVMediaPlayer.h" #import "AVAsset+SJAVMediaExport.h" #import "NSTimer+SJAssetAdd.h" +#import "SJAVPlayerItemObservation.h" +#import "SJAVPlayerObservation.h" +#import "SJApplicationObservation.h" -#if __has_include() -#import -#else -#import "NSObject+SJObserverHelper.h" -#endif - -NS_ASSUME_NONNULL_BEGIN -@interface SJAVMediaPlayer () -@property (nonatomic, strong, nullable) NSError *innerError; -@property (nonatomic) NSTimeInterval duration; -@property (nonatomic) NSTimeInterval playableDuration; -@property (nonatomic, nullable) SJWaitingReason reasonForWaitingToPlay; -@property (nonatomic) NSTimeInterval startPosition; -@property (nonatomic) BOOL needsSeekToStartPosition; -@property (nonatomic) BOOL isPlaybackFinished; ///< 播放结束 -@property (nonatomic, nullable) SJFinishedReason finishedReason; ///< 播放结束的reason -@property (nonatomic, strong, nullable) NSTimer *refreshTimer; -@property (nonatomic, readonly) BOOL isPlayedToTrialEndPosition; +@interface SJAVMediaPlayer () { + NSTimeInterval mStartPosition; + AVPlayer *mPlayer; + + SJAVPlayerObservation *mPlayerObservation; + SJAVPlayerItemObservation *mPlayerItemObservation; + SJApplicationObservation *mAppObservation; + SJSeekingInfo mSeekingInfo; + SJFinishedReason mFinishedReason; + NSTimeInterval mPlayableDuration; + id _Nullable mTimeObserver; + CMTime mLastTimePosition; + BOOL mNeedsFixTimePosition; + BOOL mReplayed; // 是否调用过`replay`方法 + BOOL mPlayed; // 是否调用过`play`方法 + BOOL mPlaybackFinished; +} @end @implementation SJAVMediaPlayer -@synthesize assetStatus = _assetStatus; -@synthesize reasonForWaitingToPlay = _reasonForWaitingToPlay; -@synthesize timeControlStatus = _timeControlStatus; -@synthesize rate = _rate; -@synthesize seekingInfo = _seekingInfo; -@synthesize duration = _duration; -@synthesize isPlayed = _isPlayed; -@synthesize isReplayed = _isReplayed; -@synthesize playableDuration = _playableDuration; - (instancetype)initWithAVPlayer:(AVPlayer *)player startPosition:(NSTimeInterval)time { self = [super init]; - if ( self ) { - _rate = 1; - _avPlayer = player; - _assetStatus = SJAssetStatusPreparing; - _startPosition = time; - _needsSeekToStartPosition = time != 0; - _minBufferedDuration = 8; - [self _prepareToPlay]; + _rate = 1; + _minBufferedDuration = 8; + if ( @available(iOS 15.0, *) ) { } + else if ( @available(iOS 14.0, *) ) { + player.currentItem.preferredForwardBufferDuration = 5.0; + } + mStartPosition = time; + mPlayer = player; + if ( time != 0 ) { + mNeedsFixTimePosition = time != 0; + mLastTimePosition = CMTimeMakeWithSeconds(time, NSEC_PER_SEC); } + + mPlayerItemObservation = [SJAVPlayerItemObservation.alloc initWithPlayerItem:player.currentItem observer:self]; + mPlayerObservation = [SJAVPlayerObservation.alloc initWithPlayer:player observer:self]; + mAppObservation = [SJApplicationObservation.alloc initWithObserver:self]; return self; } -- (void)play { - if ( self.assetStatus == SJAssetStatusFailed ) { - return; - } - - if ( self.isPlaybackFinished ) { - [self replay]; - return; - } - - _isPlayed = YES; - - if ( self.timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - _reasonForWaitingToPlay = SJWaitingWhileEvaluatingBufferingRateReason; - self.timeControlStatus = SJPlaybackTimeControlStatusWaitingToPlay; - } - - /// Thanks @hootigger: https://github.com/changsanjiang/SJBaseVideoPlayer/pull/20/files - /// - /// fix 播放后立即设置倍速,可能会导致画面卡住的问题, 直接使用系统提供api设置倍速播放 - if ( @available(iOS 10.0, *) ) { - [self.avPlayer playImmediatelyAtRate:self.rate]; - } else { - [self.avPlayer play]; - self.avPlayer.rate = self.rate; - } - [self _toEvaluating]; +- (void)dealloc { + if ( mTimeObserver != nil ) [mPlayer removeTimeObserver:mTimeObserver]; + if ( mSeekingInfo.isSeeking ) [mPlayer.currentItem cancelPendingSeeks]; } -- (void)pause { - self.timeControlStatus = SJPlaybackTimeControlStatusPaused; - [self.avPlayer pause]; +- (AVPlayer *)avPlayer { + return mPlayer; } -- (void)replay { - if ( self.assetStatus == SJAssetStatusFailed ) { - return; - } - - _isReplayed = YES; - - if ( self.timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - _reasonForWaitingToPlay = SJWaitingWhileEvaluatingBufferingRateReason; - self.timeControlStatus = SJPlaybackTimeControlStatusWaitingToPlay; - } - - __weak typeof(self) _self = self; - [self seekToTime:kCMTimeZero completionHandler:^(BOOL finished) { - __strong typeof(_self) self = _self; - if ( !self ) return; - [self _postNotification:SJMediaPlayerDidReplayNotification]; - [self play]; - }]; +- (nullable NSError *)error { + return mPlayer.error ?: mPlayer.currentItem.error; } -- (void)seekToTime:(CMTime)time completionHandler:(void (^_Nullable)(BOOL))completionHandler { - CMTime tolerance = _accurateSeeking ? kCMTimeZero : kCMTimePositiveInfinity; - [self seekToTime:time toleranceBefore:tolerance toleranceAfter:tolerance completionHandler:completionHandler]; +- (nullable SJWaitingReason)reasonForWaitingToPlay { + if ( mPlayer.reasonForWaitingToPlay == AVPlayerWaitingToMinimizeStallsReason ) return SJWaitingToMinimizeStallsReason; + if ( mPlayer.reasonForWaitingToPlay == AVPlayerWaitingWhileEvaluatingBufferingRateReason ) return SJWaitingWhileEvaluatingBufferingRateReason; + if ( mPlayer.reasonForWaitingToPlay == AVPlayerWaitingWithNoItemToPlayReason ) return SJWaitingWithNoAssetToPlayReason; + return nil; } -- (void)seekToTime:(CMTime)time toleranceBefore:(CMTime)toleranceBefore toleranceAfter:(CMTime)toleranceAfter completionHandler:(void (^_Nullable)(BOOL))completionHandler { - if ( self.avPlayer.currentItem.status != AVPlayerItemStatusReadyToPlay ) { - if ( completionHandler ) completionHandler(NO); - return; +- (SJPlaybackTimeControlStatus)timeControlStatus { + switch (mPlayer.timeControlStatus) { + case AVPlayerTimeControlStatusPaused: return SJPlaybackTimeControlStatusPaused; + case AVPlayerTimeControlStatusWaitingToPlayAtSpecifiedRate: return SJPlaybackTimeControlStatusWaitingToPlay; + case AVPlayerTimeControlStatusPlaying: return SJPlaybackTimeControlStatusPlaying; } - - time = [self _adjustSeekTimeIfNeeded:time]; - - [self _willSeeking:time]; - __weak typeof(self) _self = self; - [self.avPlayer seekToTime:time toleranceBefore:toleranceBefore toleranceAfter:toleranceAfter completionHandler:^(BOOL finished) { - __strong typeof(_self) self = _self; - if ( !self ) return; - [self _didEndSeeking]; - if ( completionHandler ) completionHandler(finished); - }]; + return SJPlaybackTimeControlStatusPaused; } -- (void)report { - [self _postNotification:SJMediaPlayerAssetStatusDidChangeNotification]; - [self _postNotification:SJMediaPlayerTimeControlStatusDidChangeNotification]; - [self _postNotification:SJMediaPlayerDurationDidChangeNotification]; - [self _postNotification:SJMediaPlayerPlayableDurationDidChangeNotification]; - [self _postNotification:SJMediaPlayerPlaybackTypeDidChangeNotification]; +- (SJAssetStatus)assetStatus { + switch ( mPlayer.status ) { + case AVPlayerStatusUnknown: return SJAssetStatusUnknown; + case AVPlayerStatusReadyToPlay: break; + case AVPlayerStatusFailed: return SJAssetStatusFailed; + } + switch ( mPlayer.currentItem.status ) { + case AVPlayerItemStatusUnknown: return SJAssetStatusUnknown; + case AVPlayerItemStatusReadyToPlay: return SJAssetStatusReadyToPlay; + case AVPlayerItemStatusFailed: return SJAssetStatusFailed; + } + return SJAssetStatusUnknown; } -- (nullable NSError *)error { - if ( _innerError != nil ) - return _innerError; - if ( _avPlayer.currentItem.error != nil ) - return _avPlayer.currentItem.error; - if ( _avPlayer.error != nil ) - return _avPlayer.error; - return nil; +- (SJSeekingInfo)seekingInfo { + return mSeekingInfo; } -#pragma mark - - -- (void)setTrialEndPosition:(NSTimeInterval)trialEndPosition { - if ( trialEndPosition != _trialEndPosition ) { - _trialEndPosition = trialEndPosition; - [self _refreshOrStop]; - } +- (CGSize)presentationSize { + return mPlayer.currentItem.presentationSize; } -- (void)setAssetStatus:(SJAssetStatus)assetStatus { - _assetStatus = assetStatus; - [self _postNotification:SJMediaPlayerAssetStatusDidChangeNotification]; - -#ifdef DEBUG - if ( _assetStatus == SJAssetStatusFailed ) { - if ( _innerError != nil ) { - NSLog(@"SJAVMediaPlayer: %@", _innerError); - } - else if ( _avPlayer.error ) { - NSLog(@"SJAVMediaPlayer: %@", self.avPlayer.error); - } - else if ( _avPlayer.currentItem.error ) { - NSLog(@"SJAVMediaPlayer: %@", self.avPlayer.currentItem.error); - } - } -#endif +- (BOOL)isReplayed { + return mReplayed; } -- (void)setTimeControlStatus:(SJPlaybackTimeControlStatus)timeControlStatus { - _timeControlStatus = timeControlStatus; - - [self _refreshOrStop]; - - [self _postNotification:SJMediaPlayerTimeControlStatusDidChangeNotification]; +- (BOOL)isPlayed { + return mPlayed; } -- (void)setIsPlaybackFinished:(BOOL)isPlaybackFinished { - if ( isPlaybackFinished != _isPlaybackFinished ) { - if ( !isPlaybackFinished ) _finishedReason = nil; - _isPlaybackFinished = isPlaybackFinished; - if ( isPlaybackFinished ) { - [self _postNotification:SJMediaPlayerPlaybackDidFinishNotification]; - } - } +- (BOOL)isPlaybackFinished { + return mPlaybackFinished; } -- (void)setPlaybackType:(SJPlaybackType)playbackType { - _playbackType = playbackType; - [self _postNotification:SJMediaPlayerPlaybackTypeDidChangeNotification]; +- (SJFinishedReason)finishedReason { + return mFinishedReason; } -- (void)setMuted:(BOOL)muted { - _avPlayer.muted = muted; - [self _postNotification:SJMediaPlayerMutedDidChangeNotification]; +// 试用结束的位置, 单位秒 +@synthesize trialEndPosition = _trialEndPosition; +- (void)setTrialEndPosition:(NSTimeInterval)trialEndPosition { + if ( trialEndPosition != _trialEndPosition ) { + _trialEndPosition = trialEndPosition; + [self _onTrailEndPositionChanged]; + } } -- (BOOL)isMuted { - return _avPlayer.isMuted; + +@synthesize rate = _rate; +- (void)setRate:(float)rate { + if ( rate != _rate ) { + _rate = rate; + if ( self.timeControlStatus != SJPlaybackTimeControlStatusPaused ) mPlayer.rate = rate; + [self _postNotification:SJMediaPlayerRateDidChangeNotification]; + } } - (void)setVolume:(float)volume { - _avPlayer.volume = volume; + mPlayer.volume = volume; [self _postNotification:SJMediaPlayerVolumeDidChangeNotification]; } - (float)volume { - return _avPlayer.volume; + return mPlayer.volume; } - -- (void)setRate:(float)rate { - _rate = rate; - - if ( rate != 0 ) { - self.timeControlStatus == SJPlaybackTimeControlStatusPaused ? [self play] : (_avPlayer.rate = rate); - } - else { - [self pause]; - } - - [self _postNotification:SJMediaPlayerRateDidChangeNotification]; + +- (void)setMuted:(BOOL)muted { + mPlayer.muted = muted; + [self _postNotification:SJMediaPlayerMutedDidChangeNotification]; } - -- (void)setInnerError:(nullable NSError *)innerError { - _innerError = innerError; - [self _toEvaluating]; +- (BOOL)isMuted { + return mPlayer.isMuted; } -- (void)setDuration:(NSTimeInterval)duration { - _duration = duration; - [self _postNotification:SJMediaPlayerDurationDidChangeNotification]; +- (void)seekToTime:(CMTime)time completionHandler:(void (^)(BOOL))completionHandler { + CMTime tolerance = _accurateSeeking ? kCMTimeZero : kCMTimePositiveInfinity; + [self seekToTime:time toleranceBefore:tolerance toleranceAfter:tolerance completionHandler:completionHandler]; } -- (void)setPlayableDuration:(NSTimeInterval)playableDuration { - _playableDuration = playableDuration; - [self _postNotification:SJMediaPlayerPlayableDurationDidChangeNotification]; +- (void)seekToTime:(CMTime)time toleranceBefore:(CMTime)toleranceBefore toleranceAfter:(CMTime)toleranceAfter completionHandler:(void (^)(BOOL))completionHandler { + if ( self.assetStatus != SJAssetStatusReadyToPlay ) { + if ( completionHandler != nil ) completionHandler(NO); + return; + } + + time = [self _adjustSeekTimeIfNeeded:time]; + + [self _willSeeking:time]; + __weak typeof(self) _self = self; + [mPlayer seekToTime:time toleranceBefore:toleranceBefore toleranceAfter:toleranceAfter completionHandler:^(BOOL finished) { + __strong typeof(_self) self = _self; + if ( self == nil ) return; + [self _didEndSeeking]; + if ( completionHandler != nil ) completionHandler(finished); + }]; } - (NSTimeInterval)currentTime { - if ( _isPlaybackFinished ) { - if ( _finishedReason == SJFinishedReasonToEndTimePosition ) - return _duration; - else if ( _finishedReason == SJFinishedReasonToTrialEndPosition ) - return _trialEndPosition; - } - return CMTimeGetSeconds(_avPlayer.currentTime); + if ( mSeekingInfo.isSeeking ) return CMTimeGetSeconds(mSeekingInfo.time); + AVPlayerItem *playerItem = mPlayer.currentItem; + return playerItem.status == AVPlayerStatusReadyToPlay ? CMTimeGetSeconds(playerItem.currentTime) : 0; } -- (NSTimeInterval)playableDuration { - if ( _trialEndPosition != 0 && _playableDuration >= _trialEndPosition ) { - return _trialEndPosition; - } - return _playableDuration; +- (NSTimeInterval)duration { + AVPlayerItem *playerItem = mPlayer.currentItem; + return playerItem.status == AVPlayerStatusReadyToPlay ? CMTimeGetSeconds(playerItem.duration) : 0; } -- (CGSize)presentationSize { - return _avPlayer.currentItem.presentationSize; +- (NSTimeInterval)playableDuration { + return mPlayableDuration; } -- (nullable UIImage *)screenshot { - return [_avPlayer.currentItem.asset sj_screenshotWithTime:_avPlayer.currentTime]; +- (void)play { + if ( mPlaybackFinished ) [self replay]; + else { + mPlayed = YES; + [mPlayer playImmediatelyAtRate:_rate]; + } } - -#pragma mark - - -- (void)_postNotification:(NSNotificationName)name { - dispatch_async(dispatch_get_main_queue(), ^{ - [NSNotificationCenter.defaultCenter postNotificationName:name object:self]; - }); +- (void)pause { + [mPlayer pause]; } -- (void)_willSeeking:(CMTime)time { - [_avPlayer.currentItem cancelPendingSeeks]; +- (void)replay { + if ( self.assetStatus == SJAssetStatusFailed ) return; - self.isPlaybackFinished = NO; - _seekingInfo.time = time; - _seekingInfo.isSeeking = YES; + mReplayed = YES; + __weak typeof(self) _self = self; + [self seekToTime:kCMTimeZero completionHandler:^(BOOL finished) { + __strong typeof(_self) self = _self; + if ( self == nil ) return; + [self _postNotification:SJMediaPlayerDidReplayNotification]; + [self play]; + }]; } - -- (void)_didEndSeeking { - _seekingInfo.time = kCMTimeZero; - _seekingInfo.isSeeking = NO; +- (void)report { + [self _postNotification:SJMediaPlayerAssetStatusDidChangeNotification]; + [self _postNotification:SJMediaPlayerTimeControlStatusDidChangeNotification]; + [self _postNotification:SJMediaPlayerDurationDidChangeNotification]; + [self _postNotification:SJMediaPlayerPlayableDurationDidChangeNotification]; + [self _postNotification:SJMediaPlayerPlaybackTypeDidChangeNotification]; } -- (void)_playImmediately { - if ( @available(iOS 10.0, *) ) { - [_avPlayer playImmediatelyAtRate:self.rate]; - } - else { - [self play]; - } - [self _toEvaluating]; +- (nullable UIImage *)screenshot { + return [mPlayer.currentItem.asset sj_screenshotWithTime:mPlayer.currentTime]; } -static NSString *kStatus = @"status"; -static NSString *kPlaybackLikelyToKeepUp = @"playbackLikelyToKeepUp"; -static NSString *kPlaybackBufferEmpty = @"playbackBufferEmpty"; -static NSString *kPlaybackBufferFull = @"playbackBufferFull"; -static NSString *kLoadedTimeRanges = @"loadedTimeRanges"; -static NSString *kPresentationSize = @"presentationSize"; -static NSString *kTimeControlStatus = @"timeControlStatus"; +#pragma mark - SJApplicationObserver -- (void)dealloc { -#ifdef SJDEBUG - NSLog(@"%d \t %s", (int)__LINE__, __func__); -#endif -} - -- (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary *)change context:(nullable void *)context { -#ifdef SJDEBUG1 - if (@available(iOS 10.0, *)) { - if ( context == &kTimeControlStatus ) { - switch ( _avPlayer.timeControlStatus ) { - case AVPlayerTimeControlStatusPaused: - printf("AVPlayer.TimeControlStatus.Paused\n"); - break; - case AVPlayerTimeControlStatusWaitingToPlayAtSpecifiedRate: { - if ( _avPlayer.reasonForWaitingToPlay == AVPlayerWaitingToMinimizeStallsReason ) { - printf("AVPlayer.TimeControlStatus.WaitingToPlay(Reason: WaitingToMinimizeStallsReason)\n"); - } - else if ( _avPlayer.reasonForWaitingToPlay == AVPlayerWaitingWithNoItemToPlayReason ) { - printf("AVPlayer.TimeControlStatus.WaitingToPlay(Reason: WaitingWithNoItemToPlayReason)\n"); - } - else if ( _avPlayer.reasonForWaitingToPlay == AVPlayerWaitingWhileEvaluatingBufferingRateReason ) { - printf("AVPlayer.TimeControlStatus.WaitingToPlay(Reason: WhileEvaluatingBufferingRateReason)\n"); - } - } - break; - case AVPlayerTimeControlStatusPlaying: - printf("AVPlayer.TimeControlStatus.Playing\n"); - break; +- (void)onReceivedApplicationDidEnterBackgroundNotification { + if ( _pauseWhenAppDidEnterBackground ) { + [self pause]; + + if ( @available(iOS 15.0, *) ) { } + else if ( @available(iOS 14.0, *) ) { + if ( self.assetStatus == SJAssetStatusReadyToPlay ) { + // Fix: https://github.com/changsanjiang/SJVideoPlayer/issues/535 + // Fix: https://github.com/changsanjiang/SJVideoPlayer/issues/339 + mLastTimePosition = mPlayer.currentTime; + mNeedsFixTimePosition = YES; } } } -#endif - - if ( context == &kStatus || - context == &kPlaybackLikelyToKeepUp || - context == &kPlaybackBufferEmpty || - context == &kPlaybackBufferFull || - context == &kTimeControlStatus ) { - [self _toEvaluating]; - } - else if ( context == &kLoadedTimeRanges ) { - [self _loadedTimeRangesDidChange]; - } - else if ( context == &kPresentationSize ) { - [self _presentationSizeDidChange]; +} +- (void)onReceivedApplicationDidBecomeActiveNotification { + if ( @available(iOS 15.0, *) ) { } + else if ( @available(iOS 14.0, *) ) { + // Fix: https://github.com/changsanjiang/SJVideoPlayer/issues/535 + // Fix: https://github.com/changsanjiang/SJVideoPlayer/issues/339 + if ( mNeedsFixTimePosition ) mPlayer.currentItem.preferredForwardBufferDuration = 5.0; } } -- (void)_prepareToPlay { - AVPlayerItem *playerItem = _avPlayer.currentItem; - __weak typeof(self) _self = self; - [playerItem.asset loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{ - __strong typeof(_self) self = _self; - if ( !self ) return; - [self _updateDuration]; - }]; - - NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew; - [playerItem sj_addObserver:self forKeyPath:kStatus options:options context:&kStatus]; - [playerItem sj_addObserver:self forKeyPath:kPlaybackLikelyToKeepUp options:options context:&kPlaybackLikelyToKeepUp]; - [playerItem sj_addObserver:self forKeyPath:kPlaybackBufferEmpty options:options context:&kPlaybackBufferEmpty]; - [playerItem sj_addObserver:self forKeyPath:kPlaybackBufferFull options:options context:&kPlaybackBufferFull]; - [playerItem sj_addObserver:self forKeyPath:kLoadedTimeRanges options:options context:&kLoadedTimeRanges]; - [playerItem sj_addObserver:self forKeyPath:kPresentationSize options:options context:&kPresentationSize]; - - [_avPlayer sj_addObserver:self forKeyPath:kStatus options:options context:&kStatus]; - if ( @available(iOS 10.0, *) ) { - [_avPlayer sj_addObserver:self forKeyPath:kTimeControlStatus options:options context:&kTimeControlStatus]; +#pragma mark - SJAVPlayerItemObserver, SJAVPlayerObserver + +- (void)playerItem:(AVPlayerItem *)playerItem statusDidChange:(AVPlayerItemStatus)playerItemStatus { + if ( playerItemStatus == AVPlayerItemStatusReadyToPlay && mNeedsFixTimePosition ) { + mNeedsFixTimePosition = NO; + [playerItem seekToTime:mLastTimePosition toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:nil]; } - [self sj_observeWithNotification:AVPlayerItemFailedToPlayToEndTimeNotification target:playerItem usingBlock:^(SJAVMediaPlayer *self, NSNotification * _Nonnull note) { - [self _failedToPlayToEndTime:note]; - }]; - [self sj_observeWithNotification:AVPlayerItemDidPlayToEndTimeNotification target:playerItem usingBlock:^(SJAVMediaPlayer *self, NSNotification * _Nonnull note) { - [self _didPlayToEndTime:note]; - }]; - [self sj_observeWithNotification:AVPlayerItemNewAccessLogEntryNotification target:playerItem usingBlock:^(SJAVMediaPlayer *self, NSNotification * _Nonnull note) { - [self _updatePlaybackType:note]; - }]; - - [self _toEvaluating]; + [self _postNotification:SJMediaPlayerAssetStatusDidChangeNotification]; + if ( self.assetStatus == SJAssetStatusReadyToPlay ) { + [self _postNotification:SJMediaPlayerPresentationSizeDidChangeNotification]; + [self _postNotification:SJMediaPlayerDurationDidChangeNotification]; + } } - -- (void)_toEvaluating { - AVPlayerItem *playerItem = _avPlayer.currentItem; - dispatch_async(dispatch_get_main_queue(), ^{ - __auto_type assetStatus = self.assetStatus; - if ( self.innerError != nil || playerItem.status == AVPlayerItemStatusFailed || self.avPlayer.status == AVPlayerStatusFailed ) { - assetStatus = SJAssetStatusFailed; - } - else if ( playerItem.status == AVPlayerItemStatusReadyToPlay && self.avPlayer.status == AVPlayerStatusReadyToPlay ) { - assetStatus = SJAssetStatusReadyToPlay; - } - - if ( assetStatus != self.assetStatus ) { - self.assetStatus = assetStatus; - } - - if ( assetStatus == SJAssetStatusFailed ) { - self.timeControlStatus = SJPlaybackTimeControlStatusPaused; - } - - if ( self.isPlayedToTrialEndPosition ) { - [self _didPlayToTrialEndPosition]; - return ; - } - - if ( self.needsSeekToStartPosition && !self.seekingInfo.isSeeking && assetStatus == SJAssetStatusReadyToPlay ) { - __weak typeof(self) _self = self; - [self seekToTime:CMTimeMakeWithSeconds(self.startPosition, NSEC_PER_SEC) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL f) { - __strong typeof(_self) self = _self; - if ( !self ) return; - self.needsSeekToStartPosition = NO; - [self _toEvaluating]; - }]; - return; - } - - if ( @available(iOS 10.0, *) ) { - __auto_type avt = [self _timeControlStatusForAVPlayerTimeControlStatus:self.avPlayer.timeControlStatus]; - __auto_type avr = [self _waitingReasonForAVPlayerWaitingReason:self.avPlayer.reasonForWaitingToPlay]; - if ( self.timeControlStatus != avt || (avr != SJWaitingWithNoAssetToPlayReason && self.reasonForWaitingToPlay != avr) ) { - self.reasonForWaitingToPlay = avr; - self.timeControlStatus = avt; - } - } - else { - if ( self.timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - [self.avPlayer pause]; - return ; - } - __auto_type timeControlStatus = self.timeControlStatus; - __auto_type reasonForWaitingToPlay = self.reasonForWaitingToPlay; - if ( assetStatus == SJAssetStatusReadyToPlay && (playerItem.isPlaybackBufferFull || playerItem.isPlaybackLikelyToKeepUp) ) { - reasonForWaitingToPlay = nil; - timeControlStatus = SJPlaybackTimeControlStatusPlaying; - } - else { - reasonForWaitingToPlay = SJWaitingToMinimizeStallsReason; - timeControlStatus = SJPlaybackTimeControlStatusWaitingToPlay; - } - - if ( self.timeControlStatus != timeControlStatus || reasonForWaitingToPlay != self.reasonForWaitingToPlay ) { - self.reasonForWaitingToPlay = reasonForWaitingToPlay; - self.timeControlStatus = timeControlStatus; - if ( timeControlStatus == SJPlaybackTimeControlStatusPlaying ) { - [self.avPlayer play]; - } +- (void)playerItem:(AVPlayerItem *)playerItem loadedTimeRangesDidChange:(NSArray *)loadedTimeRanges { + if ( loadedTimeRanges.count > 0 ) { + CMTimeRange bufferRange = [[loadedTimeRanges firstObject] CMTimeRangeValue]; + CMTime currentTime = playerItem.currentTime; + if ( CMTimeRangeContainsTime(bufferRange, currentTime) ) { + NSTimeInterval playableDuration = CMTimeGetSeconds(CMTimeRangeGetEnd(bufferRange)); + if ( playableDuration != mPlayableDuration ) { + mPlayableDuration = playableDuration; + [self _onPlayableDurationChanged:playableDuration]; } } - }); + } } - -- (void)_updateDuration { - NSTimeInterval duration = CMTimeGetSeconds(self.avPlayer.currentItem.asset.duration); - dispatch_async(dispatch_get_main_queue(), ^{ - self.duration = duration; - }); +- (void)playerItem:(AVPlayerItem *)playerItem didPlayToEndTime:(NSNotification *)notification { + mFinishedReason = SJFinishedReasonToEndTimePosition; + mPlaybackFinished = YES; + [self pause]; + [self _postNotification:SJMediaPlayerPlaybackDidFinishNotification]; } -- (void)_loadedTimeRangesDidChange { - AVPlayerItem *playerItem = _avPlayer.currentItem; - NSTimeInterval playbaleDuration = CMTimeGetSeconds(CMTimeRangeGetEnd([playerItem.loadedTimeRanges.firstObject CMTimeRangeValue])); +- (void)playerItemNewAccessLogDidEntry:(AVPlayerItem *)playerItem { + __auto_type event = playerItem.accessLog.events.firstObject; + __auto_type type = SJPlaybackTypeUnknown; + if ( [event.playbackType isEqualToString:@"LIVE"] ) { + type = SJPlaybackTypeLIVE; + } + else if ( [event.playbackType isEqualToString:@"VOD"] ) { + type = SJPlaybackTypeVOD; + } + else if ( [event.playbackType isEqualToString:@"FILE"] ) { + type = SJPlaybackTypeFILE; + } + __weak typeof(self) _self = self; dispatch_async(dispatch_get_main_queue(), ^{ - self.playableDuration = playbaleDuration; - if ( self.timeControlStatus == SJPlaybackTimeControlStatusWaitingToPlay && - self.reasonForWaitingToPlay == SJWaitingToMinimizeStallsReason && - playerItem.isPlaybackBufferEmpty == false ) { - NSTimeInterval curTime = CMTimeGetSeconds(playerItem.currentTime); - NSInteger playableMilli = (long)(playbaleDuration * 1000); - NSInteger curMilli = (long)(curTime * 1000); - NSInteger buffMilli = playableMilli - curMilli; - NSInteger maxBuffMilli = (NSInteger)(self.minBufferedDuration ?: 8 * 1000); - if ( buffMilli > maxBuffMilli ) { - [self _playImmediately]; - } - -#ifdef SJDEBUG - if ( buffMilli < maxBuffMilli ) { - printf("SJAVMediaPlayer: 缓冲中... 进度: \t %ld \t %ld \n", (long)buffMilli, (long)maxBuffMilli); - } -#endif + __strong typeof(_self) self = _self; + if ( self == nil ) return; + if ( type != self->_playbackType ) { + self->_playbackType = type; + [self _postNotification:SJMediaPlayerPlaybackTypeDidChangeNotification]; } }); } -- (void)_presentationSizeDidChange { - [self _postNotification:SJMediaPlayerPresentationSizeDidChangeNotification]; +- (void)player:(AVPlayer *)player playerStatusDidChange:(AVPlayerStatus)playerStatus { + [self _postNotification:SJMediaPlayerAssetStatusDidChangeNotification]; } - -- (void)_failedToPlayToEndTime:(NSNotification *)note { - NSError *error = note.userInfo[AVPlayerItemFailedToPlayToEndTimeErrorKey]; - dispatch_async(dispatch_get_main_queue(), ^{ - self.innerError = error; - }); +- (void)player:(AVPlayer *)player playerTimeControlStatusDidChange:(AVPlayerTimeControlStatus)timeControlStatus API_AVAILABLE(ios(10.0)) { + [self _postNotification:SJMediaPlayerTimeControlStatusDidChangeNotification]; } - -- (void)_didPlayToEndTime:(NSNotification *)note { - dispatch_async(dispatch_get_main_queue(), ^{ - self.finishedReason = SJFinishedReasonToEndTimePosition; - self.isPlaybackFinished = YES; - [self pause]; - }); +- (void)player:(AVPlayer *)player reasonForWaitingToPlayDidChange:(nullable AVPlayerWaitingReason)reasonForWaitingToPlay API_AVAILABLE(ios(10.0)) { + } -- (void)_updatePlaybackType:(NSNotification *)note { - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - __auto_type event = self.avPlayer.currentItem.accessLog.events.firstObject; - SJPlaybackType type = SJPlaybackTypeUnknown; - if ( [event.playbackType isEqualToString:@"LIVE"] ) { - type = SJPlaybackTypeLIVE; - } - else if ( [event.playbackType isEqualToString:@"VOD"] ) { - type = SJPlaybackTypeVOD; - } - else if ( [event.playbackType isEqualToString:@"FILE"] ) { - type = SJPlaybackTypeFILE; - } - dispatch_async(dispatch_get_main_queue(), ^{ - if ( type != self.playbackType ) { - self.playbackType = type; - } - }); - }); -} +#pragma mark - mark -- (nullable SJWaitingReason)_waitingReasonForAVPlayerWaitingReason:(nullable AVPlayerWaitingReason)reason API_AVAILABLE(ios(10.0)) { - if ( reason == AVPlayerWaitingWithNoItemToPlayReason ) - return SJWaitingWithNoAssetToPlayReason; - if ( reason == AVPlayerWaitingToMinimizeStallsReason ) - return SJWaitingToMinimizeStallsReason; - if ( reason == AVPlayerWaitingWhileEvaluatingBufferingRateReason ) - return SJWaitingWhileEvaluatingBufferingRateReason; - return nil; -} - -- (SJPlaybackTimeControlStatus)_timeControlStatusForAVPlayerTimeControlStatus:(AVPlayerTimeControlStatus)status API_AVAILABLE(ios(10.0)) { - switch ( status ) { - case AVPlayerTimeControlStatusPaused: - return SJPlaybackTimeControlStatusPaused; - case AVPlayerTimeControlStatusWaitingToPlayAtSpecifiedRate: - return SJPlaybackTimeControlStatusWaitingToPlay; - case AVPlayerTimeControlStatusPlaying: - return SJPlaybackTimeControlStatusPlaying; +- (void)_onTrailEndPositionChanged { + if ( _trialEndPosition != 0 ) { + if ( mTimeObserver == nil ) { + __weak typeof(self) _self = self; + mTimeObserver = [mPlayer addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.5, NSEC_PER_SEC) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) { + __strong typeof(_self) self = _self; + if ( self == nil ) return; + [self _onCheckTrailEndPosition:CMTimeGetSeconds(time)]; + }]; + } + [self _onCheckTrailEndPosition:self.currentTime]; + } + else if ( mTimeObserver != nil ) { + [mPlayer removeTimeObserver:mTimeObserver]; + mTimeObserver = nil; } } -- (BOOL)isPlayedToTrialEndPosition { - return self.trialEndPosition != 0 && self.currentTime >= self.trialEndPosition; +- (void)_onCheckTrailEndPosition:(NSTimeInterval)currentTime { + if ( _trialEndPosition != 0 && currentTime >= _trialEndPosition ) { + mFinishedReason = SJFinishedReasonToTrialEndPosition; + mPlaybackFinished = YES; + [self pause]; + [self _postNotification:SJMediaPlayerPlaybackDidFinishNotification]; + } } -- (void)_didPlayToTrialEndPosition { - if ( self.finishedReason != SJFinishedReasonToTrialEndPosition ) { - self.finishedReason = SJFinishedReasonToTrialEndPosition; - self.isPlaybackFinished = YES; - [self pause]; +- (void)_onPlayableDurationChanged:(NSTimeInterval)playableDuration { + if ( self.timeControlStatus == SJPlaybackTimeControlStatusWaitingToPlay ) { + NSTimeInterval currentTime = self.currentTime; + if ( (playableDuration - currentTime) >= _minBufferedDuration ) { + [self play]; + } } + + [self _postNotification:SJMediaPlayerPlayableDurationDidChangeNotification]; } - (CMTime)_adjustSeekTimeIfNeeded:(CMTime)time { @@ -576,29 +368,22 @@ - (CMTime)_adjustSeekTimeIfNeeded:(CMTime)time { return time; } -- (void)_refreshOrStop { - if ( _trialEndPosition == 0 || _timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - if ( _refreshTimer != nil ) { - [_refreshTimer invalidate]; - _refreshTimer = nil; - } - } - else { - if ( _refreshTimer == nil ) { - __weak typeof(self) _self = self; - _refreshTimer = [NSTimer sj_timerWithTimeInterval:0.5 repeats:YES usingBlock:^(NSTimer * _Nonnull timer) { - __strong typeof(_self) self = _self; - if ( !self ) return; - if ( self.isPlayedToTrialEndPosition ) { - [self _didPlayToTrialEndPosition]; - } - }]; - [_refreshTimer sj_fire]; - [NSRunLoop.mainRunLoop addTimer:_refreshTimer forMode:NSRunLoopCommonModes]; - } - } +- (void)_willSeeking:(CMTime)time { + [mPlayer.currentItem cancelPendingSeeks]; + mPlaybackFinished = NO; + mSeekingInfo.time = time; + mSeekingInfo.isSeeking = YES; } +- (void)_didEndSeeking { + mSeekingInfo.time = kCMTimeZero; + mSeekingInfo.isSeeking = NO; +} + +- (void)_postNotification:(NSNotificationName)name { + dispatch_async(dispatch_get_main_queue(), ^{ + [NSNotificationCenter.defaultCenter postNotificationName:name object:self]; + }); +} @end -NS_ASSUME_NONNULL_END diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.h b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.h new file mode 100644 index 0000000..60eb6f4 --- /dev/null +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.h @@ -0,0 +1,24 @@ +// +// SJAVPlayerItemObservation.h +// player +// +// Created by 畅三江 on 2023/8/8. +// + +#import +@protocol SJAVPlayerItemObserver; + +NS_ASSUME_NONNULL_BEGIN +@interface SJAVPlayerItemObservation : NSObject +- (instancetype)initWithPlayerItem:(AVPlayerItem *)playerItem observer:(id)observer; + +@property (nonatomic, weak, readonly, nullable) id observer; +@end + +@protocol SJAVPlayerItemObserver +- (void)playerItem:(AVPlayerItem *)playerItem statusDidChange:(AVPlayerItemStatus)playerItemStatus; +- (void)playerItem:(AVPlayerItem *)playerItem loadedTimeRangesDidChange:(NSArray *)loadedTimeRanges; +- (void)playerItem:(AVPlayerItem *)playerItem didPlayToEndTime:(NSNotification *)notification; +- (void)playerItemNewAccessLogDidEntry:(AVPlayerItem *)playerItem; // 子线程执行 +@end +NS_ASSUME_NONNULL_END diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.m b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.m new file mode 100644 index 0000000..cc2ab4a --- /dev/null +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerItemObservation.m @@ -0,0 +1,82 @@ +// +// SJAVPlayerItemObservation.m +// player +// +// Created by 畅三江 on 2023/8/8. +// + +#import "SJAVPlayerItemObservation.h" + +static NSString *kStatus = @"status"; +static NSString *kLoadedTimeRanges = @"loadedTimeRanges"; + +@implementation SJAVPlayerItemObservation { + AVAsset *_asset; + AVPlayerItem *_playerItem; +} + +- (instancetype)initWithPlayerItem:(AVPlayerItem *)playerItem observer:(id)observer { + self = [super init]; + _asset = playerItem.asset; + _playerItem = playerItem; + _observer = observer; + [self _registerObserver]; + return self; +} + +- (void)dealloc { + [_playerItem removeObserver:self forKeyPath:kStatus context:&kStatus]; + [_playerItem removeObserver:self forKeyPath:kLoadedTimeRanges context:&kLoadedTimeRanges]; + [NSNotificationCenter.defaultCenter removeObserver:self]; +} + +- (void)_registerObserver { + NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew; + [_playerItem addObserver:self forKeyPath:kStatus options:options context:&kStatus]; + [_playerItem addObserver:self forKeyPath:kLoadedTimeRanges options:options context:&kLoadedTimeRanges]; + + __weak typeof(self) _self = self; + [NSNotificationCenter.defaultCenter addObserverForName:AVPlayerItemDidPlayToEndTimeNotification object:self queue:NSOperationQueue.mainQueue usingBlock:^(NSNotification * _Nonnull note) { + __strong typeof(_self) self = _self; + if ( self == nil ) return; + [self playerItemDidPlayToEndTime:note]; + }]; + + [NSNotificationCenter.defaultCenter addObserverForName:AVPlayerItemNewAccessLogEntryNotification object:self queue:nil usingBlock:^(NSNotification * _Nonnull note) { + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + __strong typeof(_self) self = _self; + if ( self == nil ) return; + [self newAccessLogDidEntry:note]; + }); + }]; + +} + +- (void)newAccessLogDidEntry:(NSNotification *)note { +#ifdef SJDEBUG + NSLog(@"NOTIFY: note: %@, isMainThread: %d", note, NSThread.currentThread.isMainThread); +#endif + [_observer playerItemNewAccessLogDidEntry:_playerItem]; +} + +- (void)playerItemDidPlayToEndTime:(NSNotification *)note { +#ifdef SJDEBUG + NSLog(@"NOTIFY: note: %@, isMainThread: %d", note, NSThread.currentThread.isMainThread); +#endif + [_observer playerItem:_playerItem didPlayToEndTime:note]; +} + +- (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary *)change context:(nullable void *)context { +#ifdef SJDEBUG + NSLog(@"KVO_CHANGE: keyPath: %@, object: %@, value: %@", keyPath, [object class], [object valueForKey:keyPath]); +#endif + id newValue = change[NSKeyValueChangeNewKey]; + BOOL isNonNull = newValue != nil && ![newValue isKindOfClass:NSNull.class]; + if ( context == &kStatus ) { + [_observer playerItem:_playerItem statusDidChange:isNonNull ? [newValue integerValue] : _playerItem.status]; + } + else if ( context == &kLoadedTimeRanges ) { + [_observer playerItem:_playerItem loadedTimeRangesDidChange:isNonNull ? newValue : _playerItem.loadedTimeRanges]; + } +} +@end diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.h b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.h new file mode 100644 index 0000000..d336224 --- /dev/null +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.h @@ -0,0 +1,23 @@ +// +// SJAVPlayerObservation.h +// player +// +// Created by 畅三江 on 2023/8/7. +// + +#import +@protocol SJAVPlayerObserver; + +NS_ASSUME_NONNULL_BEGIN +@interface SJAVPlayerObservation : NSObject +- (instancetype)initWithPlayer:(AVPlayer *)player observer:(id)observer; + +@property (nonatomic, weak, readonly, nullable) id observer; +@end + +@protocol SJAVPlayerObserver +- (void)player:(AVPlayer *)player playerStatusDidChange:(AVPlayerStatus)playerStatus; +- (void)player:(AVPlayer *)player playerTimeControlStatusDidChange:(AVPlayerTimeControlStatus)timeControlStatus API_AVAILABLE(ios(10.0)); +- (void)player:(AVPlayer *)player reasonForWaitingToPlayDidChange:(nullable AVPlayerWaitingReason)reasonForWaitingToPlay API_AVAILABLE(ios(10.0)); +@end +NS_ASSUME_NONNULL_END diff --git a/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.m b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.m new file mode 100644 index 0000000..c60c2eb --- /dev/null +++ b/SJBaseVideoPlayer/AVPlayer/Core/SJAVPlayerObservation.m @@ -0,0 +1,61 @@ +// +// SJAVPlayerObservation.m +// player +// +// Created by 畅三江 on 2023/8/7. +// + +#import "SJAVPlayerObservation.h" + +static NSString *kStatus = @"status"; +static NSString *kTimeControlStatus = @"timeControlStatus"; +static NSString *kReasonForWaitingToPlay = @"reasonForWaitingToPlay"; + +@implementation SJAVPlayerObservation { + AVPlayer *_player; +} +- (instancetype)initWithPlayer:(AVPlayer *)player observer:(nonnull id)observer { + self = [super init]; + _player = player; + _observer = observer; + [self _registerObserver]; + return self; +} + +- (void)dealloc { + [_player removeObserver:self forKeyPath:kStatus context:&kStatus]; + if ( @available(iOS 10.0, *) ) { + [_player removeObserver:self forKeyPath:kTimeControlStatus context:&kTimeControlStatus]; + [_player removeObserver:self forKeyPath:kReasonForWaitingToPlay context:&kReasonForWaitingToPlay]; + } +} + +- (void)_registerObserver { + NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew; + [_player addObserver:self forKeyPath:kStatus options:options context:&kStatus]; + if ( @available(iOS 10.0, *) ) { + [_player addObserver:self forKeyPath:kTimeControlStatus options:options context:&kTimeControlStatus]; + [_player addObserver:self forKeyPath:kReasonForWaitingToPlay options:options context:&kReasonForWaitingToPlay]; + } +} + +- (void)observeValueForKeyPath:(nullable NSString *)keyPath ofObject:(nullable id)object change:(nullable NSDictionary *)change context:(nullable void *)context { +#ifdef SJDEBUG + NSLog(@"KVO_CHANGE: keyPath: %@, object: %@, value: %@", keyPath, [object class], [object valueForKey:keyPath]); +#endif + id newValue = change[NSKeyValueChangeNewKey]; + BOOL isNonNull = newValue != nil && ![newValue isKindOfClass:NSNull.class]; + + if ( context == &kStatus ) { + [_observer player:_player playerStatusDidChange:isNonNull ? [newValue integerValue] : _player.status]; + } + else if ( @available(iOS 10.0, *) ) { + if ( context == &kTimeControlStatus ) { + [_observer player:_player playerTimeControlStatusDidChange:isNonNull ? [newValue integerValue] : _player.timeControlStatus]; + } + else if ( context == &kReasonForWaitingToPlay ) { + [_observer player:_player reasonForWaitingToPlayDidChange:isNonNull ? newValue : _player.reasonForWaitingToPlay]; + } + } +} +@end diff --git a/SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m b/SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m index cd87466..dbc30da 100644 --- a/SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m +++ b/SJBaseVideoPlayer/AVPlayer/SJAVMediaPlaybackController.m @@ -16,8 +16,6 @@ NS_ASSUME_NONNULL_BEGIN @interface SJAVMediaPlaybackController () @property (nonatomic, strong, nullable) SJAVPictureInPictureController *pictureInPictureController API_AVAILABLE(ios(14.0)); -// https://github.com/changsanjiang/SJVideoPlayer/issues/339 -@property (nonatomic) BOOL needsToRefresh_fix339 API_AVAILABLE(ios(14.0)); @end @implementation SJAVMediaPlaybackController @@ -50,7 +48,8 @@ - (void)playerWithMedia:(SJVideoPlayerURLAsset *)media completionHandler:(void ( SJAVMediaPlayer *player = [SJAVMediaPlayerLoader loadPlayerForMedia:media]; player.minBufferedDuration = self.minBufferedDuration; player.accurateSeeking = self.accurateSeeking; - + player.pauseWhenAppDidEnterBackground = self.pauseWhenAppDidEnterBackground; + if ( (player.isPlayed && media.original == nil) || player.isPlaybackFinished ) { [player seekToTime:kCMTimeZero completionHandler:^(BOOL finished) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ @@ -72,33 +71,13 @@ - (void)playerWithMedia:(SJVideoPlayerURLAsset *)media completionHandler:(void ( return view; } -- (void)receivedApplicationDidBecomeActiveNotification { +- (void)receivedApplicationWillEnterForegroundNotification { if ( @available(iOS 14.0, *) ) { if ( _pictureInPictureController.isEnabled ) return; } - - if ( @available(iOS 14.0, *) ) { - if ( self.media.isM3u8 ) { - if ( self.pauseWhenAppDidEnterBackground || - // fix: https://github.com/changsanjiang/SJVideoPlayer/issues/535 - self.timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - if ( self.timeControlStatus == SJPlaybackTimeControlStatusPaused ) { - self.needsToRefresh_fix339 = YES; - return; - } - } - } - - } - SJAVMediaPlayerLayerView *view = self.currentPlayerView; view.layer.player = self.currentPlayer.avPlayer; - - // fix: https://github.com/changsanjiang/SJVideoPlayer/issues/395 - if ( self.currentPlayerView.isReadyForDisplay ) { - [self.currentPlayerView setScreenshot:nil]; - } } - (void)receivedApplicationDidEnterBackgroundNotification { @@ -111,22 +90,8 @@ - (void)receivedApplicationDidEnterBackgroundNotification { [self pause]; } else { - [self _removePlayerForLayerIfNeeded]; - } -} - -- (void)receivedApplicationWillResignActiveNotification { - if ( @available(iOS 14.0, *) ) { - if ( _pictureInPictureController.isEnabled ) - return; - } - - if ( self.pauseWhenAppDidEnterBackground && self.assetStatus == SJAssetStatusReadyToPlay /*fix #430 */ ) - [self.currentPlayerView setScreenshot:self.screenshot]; - - // 修复 14.0 后台播放失效的问题 - if ( @available(iOS 14.0, *) ) { - [self _removePlayerForLayerIfNeeded]; + SJAVMediaPlayerLayerView *view = self.currentPlayerView; + view.layer.player = nil; } } @@ -232,7 +197,6 @@ - (void)setMinBufferedDuration:(NSTimeInterval)minBufferedDuration { - (void)refresh { if ( self.media != nil ) [SJAVMediaPlayerLoader clearPlayerForMedia:self.media]; if ( @available(iOS 14.0, *) ) { - self.needsToRefresh_fix339 = NO; [self cancelPictureInPicture]; } [self cancelGenerateGIFOperation]; @@ -240,20 +204,10 @@ - (void)refresh { [super refresh]; } -- (void)play { - if (@available(iOS 14.0, *)) { - self.needsToRefresh_fix339 ? [self refresh] : [super play]; - } - else { - [super play]; - } -} - - (void)stop { [self cancelGenerateGIFOperation]; [self cancelExportOperation]; if ( @available(iOS 14.0, *) ) { - self.needsToRefresh_fix339 = NO; [self cancelPictureInPicture]; } [super stop]; @@ -263,6 +217,11 @@ - (SJPlaybackType)playbackType { return self.currentPlayer.playbackType; } +- (void)setPauseWhenAppDidEnterBackground:(BOOL)pauseWhenAppDidEnterBackground { + [super setPauseWhenAppDidEnterBackground:pauseWhenAppDidEnterBackground]; + self.currentPlayer.pauseWhenAppDidEnterBackground = pauseWhenAppDidEnterBackground; +} + #pragma mark - - (void)_av_playbackTypeDidChange:(NSNotification *)note { @@ -304,20 +263,6 @@ - (void)_av_assetStatusDidChange:(NSNotification *)note API_AVAILABLE(ios(14.2)) [self prepareForPictureInPicture]; } } - -- (void)_removePlayerForLayerIfNeeded { - if ( self.pauseWhenAppDidEnterBackground ) - return; - - if ( @available(iOS 14.0, *) ) { - if ( _pictureInPictureController != nil && self.timeControlStatus != SJPlaybackTimeControlStatusPaused ) { - return; - } - } - - SJAVMediaPlayerLayerView *view = self.currentPlayerView; - view.layer.player = nil; -} @end diff --git a/SJBaseVideoPlayer/AliPlayer/.DS_Store b/SJBaseVideoPlayer/AliPlayer/.DS_Store index a872788..d49c0ab 100644 Binary files a/SJBaseVideoPlayer/AliPlayer/.DS_Store and b/SJBaseVideoPlayer/AliPlayer/.DS_Store differ diff --git a/SJBaseVideoPlayer/Common/.DS_Store b/SJBaseVideoPlayer/Common/.DS_Store index da32599..e2cc8c7 100644 Binary files a/SJBaseVideoPlayer/Common/.DS_Store and b/SJBaseVideoPlayer/Common/.DS_Store differ diff --git a/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.h b/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.h new file mode 100644 index 0000000..36cc0c9 --- /dev/null +++ b/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.h @@ -0,0 +1,25 @@ +// +// SJApplicationObservation.h +// player +// +// Created by 畅三江 on 2023/9/19. +// + +#import +@protocol SJApplicationObserver; + +NS_ASSUME_NONNULL_BEGIN + +@interface SJApplicationObservation : NSObject +- (instancetype)initWithObserver:(id)observer; + +@property (nonatomic, weak, readonly, nullable) id observer; +@end + +@protocol SJApplicationObserver +@optional +- (void)onReceivedApplicationDidEnterBackgroundNotification; +- (void)onReceivedApplicationWillEnterForegroundNotification; +- (void)onReceivedApplicationDidBecomeActiveNotification; +@end +NS_ASSUME_NONNULL_END diff --git a/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.m b/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.m new file mode 100644 index 0000000..9995bb1 --- /dev/null +++ b/SJBaseVideoPlayer/Common/Utils/SJApplicationObservation.m @@ -0,0 +1,38 @@ +// +// SJApplicationObservation.m +// player +// +// Created by 畅三江 on 2023/9/19. +// + +#import "SJApplicationObservation.h" + +@implementation SJApplicationObservation +- (instancetype)initWithObserver:(id)observer { + self = [super init]; + _observer = observer; + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(didEnterBackgroundWithNote:) name:UIApplicationDidEnterBackgroundNotification object:nil]; + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(willEnterForegroundWithNote:) name:UIApplicationWillEnterForegroundNotification object:nil]; + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(didBecomeActiveWithNote:) name:UIApplicationDidBecomeActiveNotification object:nil]; + return self; +} + +- (void)dealloc { + [NSNotificationCenter.defaultCenter removeObserver:self]; +} + +- (void)didEnterBackgroundWithNote:(NSNotification *)note { + if ( [_observer respondsToSelector:@selector(onReceivedApplicationDidEnterBackgroundNotification)] ) + [_observer onReceivedApplicationDidEnterBackgroundNotification]; +} + +- (void)willEnterForegroundWithNote:(NSNotification *)note { + if ( [_observer respondsToSelector:@selector(onReceivedApplicationWillEnterForegroundNotification)] ) + [_observer onReceivedApplicationWillEnterForegroundNotification]; +} + +- (void)didBecomeActiveWithNote:(NSNotification *)note { + if ( [_observer respondsToSelector:@selector(onReceivedApplicationDidBecomeActiveNotification)] ) + [_observer onReceivedApplicationDidBecomeActiveNotification]; +} +@end diff --git a/SJBaseVideoPlayer/IJKPlayer/.DS_Store b/SJBaseVideoPlayer/IJKPlayer/.DS_Store index b6b3b03..3232d0c 100644 Binary files a/SJBaseVideoPlayer/IJKPlayer/.DS_Store and b/SJBaseVideoPlayer/IJKPlayer/.DS_Store differ diff --git a/SJBaseVideoPlayer/ResourceLoader/.DS_Store b/SJBaseVideoPlayer/ResourceLoader/.DS_Store index b10347e..081dfef 100644 Binary files a/SJBaseVideoPlayer/ResourceLoader/.DS_Store and b/SJBaseVideoPlayer/ResourceLoader/.DS_Store differ