43 Commits

Author SHA1 Message Date
Gavin King 516c086943 Merge pull request #65 from vimeo/v6.1.2
Merging v6.1.2 into master
2016-09-27 16:09:32 -04:00
Nicole Lehrer a070f2c785 Merge pull request #64 from vimeo/VIM-4496-airplayBug
VIM-4496: No Playback if Already in Airplay Mode
2016-09-01 22:37:26 -04:00
Nicole Lehrer 0935b0ec55 using default init 2016-08-30 13:55:38 -04:00
Gavin King 747f6bb56f Merge pull request #62 from vimeo/VIM-4419-drm-player-error-ui
VIM-4419: DRM player error UI
2016-08-22 16:38:15 -04:00
Gavin King aea0881949 better error handling 2016-08-16 15:40:55 -04:00
Gavin King df0e6caaaf Merge pull request #60 from vimeo/VIM-4503-session-time
VIM-4503: Session time
2016-08-12 16:00:23 -04:00
Gavin King 3197515537 moving constant 2016-08-11 11:01:53 -04:00
Gavin King 36cecee5bc Merge pull request #59 from vimeo/VIM-3520-airplay-mirror-bug
VIM-3520: Airplay Mirror Bug
2016-08-10 14:19:45 -04:00
Gavin King 3da484c5e2 airplay fix 2016-08-08 11:37:01 -04:00
Gavin King 59b9f3a5fe Merge pull request #53 from vimeo/v6.0.2
Merging v6.0.2 into master
2016-05-03 11:28:30 -04:00
Nicole Lehrer 1e78889bf9 Merge pull request #52 from vimeo/offlinePlaybackCrash
VIM-3864: Offline playback crash
2016-04-20 19:13:38 -04:00
Alfie Hanssen 6d227fb37f Merge pull request #49 from jersonperpetua/workspace_carthage_support
Workspace Carthage support
2016-04-20 15:36:06 -04:00
Nicole Lehrer 3dd7e8a2be revert back to 1f17c3e179 2016-04-16 15:32:03 -04:00
Nicole Lehrer 215670a00d make restart public 2016-04-16 12:35:05 -04:00
Nicole Lehrer 4ef059b790 remove check for isPlaying 2016-04-16 12:30:54 -04:00
Nicole Lehrer 1f17c3e179 check finished flag for success 2016-04-16 12:28:21 -04:00
Jerson Michael Perpetua cb0da4d8e0 Set the minimum target to iOS 8.0 2016-04-06 09:49:14 +08:00
Jerson Michael Perpetua 85ecae532b Add Carthage support by sharing the VimeoPlayer framework target 2016-04-06 09:49:05 +08:00
Alfie Hanssen faa6d70b09 bumped podspec version number, fixed source path 2016-04-01 13:45:30 -04:00
Alfie Hanssen 45117c9c7e Merge pull request #47 from vimeo/v6.0.2
v6.0.2 > Master
2016-04-01 12:31:14 -04:00
Alfie Hanssen 1e2843bda3 Update LICENSE.md 2016-03-31 22:09:30 -04:00
Alfie Hanssen 4e5c677dbe Update LICENSE.md 2016-03-31 22:09:22 -04:00
Alfie Hanssen 5b3d267add Update README.md 2016-03-31 22:01:34 -04:00
Alfie Hanssen 208c5bac56 Update README.md 2016-03-31 21:52:07 -04:00
Alfie Hanssen 46aa54e707 Merge pull request #46 from vimeo/framework
Adds Framework Project to Workspace
2016-03-29 11:32:48 -04:00
Alfie Hanssen 991fa26720 podspec update 2016-03-24 12:54:41 -04:00
Alfie Hanssen a4bb460876 renamed example project 2016-03-24 12:47:30 -04:00
Alfie Hanssen 55bbd0ed41 changed project setup to include framework 2016-03-24 12:10:16 -04:00
Gavin King cc3bce965f Merge pull request #44 from vimeo/nameChange
VIM-2388: Smokescreen -> Vimeo
2016-03-23 11:41:11 -04:00
Gavin King 684adc0531 name change 2016-03-23 11:33:19 -04:00
Gavin King 1adc511044 Merge pull request #43 from vimeo/example
VIM-3653: Example Project
2016-03-21 10:54:18 -04:00
Gavin King d4446bc3db more readme 2016-03-21 10:51:36 -04:00
Gavin King d908925d7e more readme 2016-03-21 10:50:10 -04:00
Gavin King 1c7720f088 readme 2016-03-21 10:48:23 -04:00
Rob Huebner 19b5797eb4 Merge pull request #42 from vimeo/v6.0.1
6.0.1 -> 6.0.2
2016-03-16 11:08:20 -04:00
Gavin King 4e10d0cece Merge pull request #41 from vimeo/v6.0.1
Merging v6.0.1 into master
2016-03-15 19:26:09 -04:00
Gavin King 0ead324b5c Merge branch 'master' into v6.0.1
# Conflicts:
#	VIMVideoPlayer.podspec
2016-03-15 19:25:59 -04:00
Gavin King 9c34e65a66 new video 2016-03-10 15:24:24 -05:00
Gavin King bb3277d25e naming 2016-03-10 12:34:06 -05:00
Gavin King 7ef2d71f3e adding workspace 2016-03-10 12:18:05 -05:00
Gavin King 0d031c0eb2 adding example 2016-03-10 12:13:37 -05:00
Rob Huebner e21527c1e8 Merge pull request #38 from vimeo/tvos
Adding tvOS platform
2016-03-07 17:39:05 -05:00
Rob Huebner 9496df53a1 adding tvos platform 2016-03-01 11:16:57 -05:00
30 changed files with 1608 additions and 718 deletions
@@ -0,0 +1,525 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
AF8720311CA44FBD004C752C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8720301CA44FBD004C752C /* AppDelegate.swift */; };
AF8720331CA44FBD004C752C /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8720321CA44FBD004C752C /* ViewController.swift */; };
AF8720361CA44FBD004C752C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AF8720341CA44FBD004C752C /* Main.storyboard */; };
AF8720381CA44FBD004C752C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AF8720371CA44FBD004C752C /* Assets.xcassets */; };
AF87203B1CA44FBD004C752C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AF8720391CA44FBD004C752C /* LaunchScreen.storyboard */; };
AF8720461CA44FBD004C752C /* VimeoPlayer_iOS_ExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8720451CA44FBD004C752C /* VimeoPlayer_iOS_ExampleTests.swift */; };
AF8720511CA44FBD004C752C /* VimeoPlayer_iOS_ExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8720501CA44FBD004C752C /* VimeoPlayer_iOS_ExampleUITests.swift */; };
AF87205F1CA44FF6004C752C /* VimeoPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF87205E1CA44FF6004C752C /* VimeoPlayer.framework */; };
AF8720631CA4507C004C752C /* waterfall.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = AF8720621CA4507C004C752C /* waterfall.mp4 */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
AF8720421CA44FBD004C752C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = AF8720251CA44FBC004C752C /* Project object */;
proxyType = 1;
remoteGlobalIDString = AF87202C1CA44FBD004C752C;
remoteInfo = "VimeoPlayer-iOS-Example";
};
AF87204D1CA44FBD004C752C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = AF8720251CA44FBC004C752C /* Project object */;
proxyType = 1;
remoteGlobalIDString = AF87202C1CA44FBD004C752C;
remoteInfo = "VimeoPlayer-iOS-Example";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
AF87202D1CA44FBD004C752C /* VimeoPlayer-iOS-Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VimeoPlayer-iOS-Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
AF8720301CA44FBD004C752C /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
AF8720321CA44FBD004C752C /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
AF8720351CA44FBD004C752C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
AF8720371CA44FBD004C752C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
AF87203A1CA44FBD004C752C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
AF87203C1CA44FBD004C752C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AF8720411CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "VimeoPlayer-iOS-ExampleTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
AF8720451CA44FBD004C752C /* VimeoPlayer_iOS_ExampleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VimeoPlayer_iOS_ExampleTests.swift; sourceTree = "<group>"; };
AF8720471CA44FBD004C752C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AF87204C1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "VimeoPlayer-iOS-ExampleUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
AF8720501CA44FBD004C752C /* VimeoPlayer_iOS_ExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VimeoPlayer_iOS_ExampleUITests.swift; sourceTree = "<group>"; };
AF8720521CA44FBD004C752C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AF87205E1CA44FF6004C752C /* VimeoPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VimeoPlayer.framework; path = "../../VIMVideoPlayer-Framework/build/Debug-iphoneos/VimeoPlayer.framework"; sourceTree = "<group>"; };
AF8720611CA4507C004C752C /* Bridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bridge.h; sourceTree = "<group>"; };
AF8720621CA4507C004C752C /* waterfall.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = waterfall.mp4; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
AF87202A1CA44FBD004C752C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
AF87205F1CA44FF6004C752C /* VimeoPlayer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AF87203E1CA44FBD004C752C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AF8720491CA44FBD004C752C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
AF8720241CA44FBC004C752C = {
isa = PBXGroup;
children = (
AF87202F1CA44FBD004C752C /* VimeoPlayer-iOS-Example */,
AF8720441CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests */,
AF87204F1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests */,
AF87202E1CA44FBD004C752C /* Products */,
AF8720601CA45004004C752C /* Frameworks */,
);
sourceTree = "<group>";
};
AF87202E1CA44FBD004C752C /* Products */ = {
isa = PBXGroup;
children = (
AF87202D1CA44FBD004C752C /* VimeoPlayer-iOS-Example.app */,
AF8720411CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests.xctest */,
AF87204C1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
AF87202F1CA44FBD004C752C /* VimeoPlayer-iOS-Example */ = {
isa = PBXGroup;
children = (
AF8720301CA44FBD004C752C /* AppDelegate.swift */,
AF8720321CA44FBD004C752C /* ViewController.swift */,
AF8720341CA44FBD004C752C /* Main.storyboard */,
AF8720371CA44FBD004C752C /* Assets.xcassets */,
AF8720391CA44FBD004C752C /* LaunchScreen.storyboard */,
AF87203C1CA44FBD004C752C /* Info.plist */,
AF8720611CA4507C004C752C /* Bridge.h */,
AF8720621CA4507C004C752C /* waterfall.mp4 */,
);
path = "VimeoPlayer-iOS-Example";
sourceTree = "<group>";
};
AF8720441CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests */ = {
isa = PBXGroup;
children = (
AF8720451CA44FBD004C752C /* VimeoPlayer_iOS_ExampleTests.swift */,
AF8720471CA44FBD004C752C /* Info.plist */,
);
path = "VimeoPlayer-iOS-ExampleTests";
sourceTree = "<group>";
};
AF87204F1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests */ = {
isa = PBXGroup;
children = (
AF8720501CA44FBD004C752C /* VimeoPlayer_iOS_ExampleUITests.swift */,
AF8720521CA44FBD004C752C /* Info.plist */,
);
path = "VimeoPlayer-iOS-ExampleUITests";
sourceTree = "<group>";
};
AF8720601CA45004004C752C /* Frameworks */ = {
isa = PBXGroup;
children = (
AF87205E1CA44FF6004C752C /* VimeoPlayer.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
AF87202C1CA44FBD004C752C /* VimeoPlayer-iOS-Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = AF8720551CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-Example" */;
buildPhases = (
AF8720291CA44FBD004C752C /* Sources */,
AF87202A1CA44FBD004C752C /* Frameworks */,
AF87202B1CA44FBD004C752C /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = "VimeoPlayer-iOS-Example";
productName = "VimeoPlayer-iOS-Example";
productReference = AF87202D1CA44FBD004C752C /* VimeoPlayer-iOS-Example.app */;
productType = "com.apple.product-type.application";
};
AF8720401CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = AF8720581CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-ExampleTests" */;
buildPhases = (
AF87203D1CA44FBD004C752C /* Sources */,
AF87203E1CA44FBD004C752C /* Frameworks */,
AF87203F1CA44FBD004C752C /* Resources */,
);
buildRules = (
);
dependencies = (
AF8720431CA44FBD004C752C /* PBXTargetDependency */,
);
name = "VimeoPlayer-iOS-ExampleTests";
productName = "VimeoPlayer-iOS-ExampleTests";
productReference = AF8720411CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
AF87204B1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = AF87205B1CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-ExampleUITests" */;
buildPhases = (
AF8720481CA44FBD004C752C /* Sources */,
AF8720491CA44FBD004C752C /* Frameworks */,
AF87204A1CA44FBD004C752C /* Resources */,
);
buildRules = (
);
dependencies = (
AF87204E1CA44FBD004C752C /* PBXTargetDependency */,
);
name = "VimeoPlayer-iOS-ExampleUITests";
productName = "VimeoPlayer-iOS-ExampleUITests";
productReference = AF87204C1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
AF8720251CA44FBC004C752C /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = Vimeo;
TargetAttributes = {
AF87202C1CA44FBD004C752C = {
CreatedOnToolsVersion = 7.2;
};
AF8720401CA44FBD004C752C = {
CreatedOnToolsVersion = 7.2;
TestTargetID = AF87202C1CA44FBD004C752C;
};
AF87204B1CA44FBD004C752C = {
CreatedOnToolsVersion = 7.2;
TestTargetID = AF87202C1CA44FBD004C752C;
};
};
};
buildConfigurationList = AF8720281CA44FBC004C752C /* Build configuration list for PBXProject "VimeoPlayer-iOS-Example" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = AF8720241CA44FBC004C752C;
productRefGroup = AF87202E1CA44FBD004C752C /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
AF87202C1CA44FBD004C752C /* VimeoPlayer-iOS-Example */,
AF8720401CA44FBD004C752C /* VimeoPlayer-iOS-ExampleTests */,
AF87204B1CA44FBD004C752C /* VimeoPlayer-iOS-ExampleUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
AF87202B1CA44FBD004C752C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF87203B1CA44FBD004C752C /* LaunchScreen.storyboard in Resources */,
AF8720381CA44FBD004C752C /* Assets.xcassets in Resources */,
AF8720631CA4507C004C752C /* waterfall.mp4 in Resources */,
AF8720361CA44FBD004C752C /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AF87203F1CA44FBD004C752C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AF87204A1CA44FBD004C752C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
AF8720291CA44FBD004C752C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF8720331CA44FBD004C752C /* ViewController.swift in Sources */,
AF8720311CA44FBD004C752C /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AF87203D1CA44FBD004C752C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF8720461CA44FBD004C752C /* VimeoPlayer_iOS_ExampleTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AF8720481CA44FBD004C752C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF8720511CA44FBD004C752C /* VimeoPlayer_iOS_ExampleUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
AF8720431CA44FBD004C752C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = AF87202C1CA44FBD004C752C /* VimeoPlayer-iOS-Example */;
targetProxy = AF8720421CA44FBD004C752C /* PBXContainerItemProxy */;
};
AF87204E1CA44FBD004C752C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = AF87202C1CA44FBD004C752C /* VimeoPlayer-iOS-Example */;
targetProxy = AF87204D1CA44FBD004C752C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
AF8720341CA44FBD004C752C /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
AF8720351CA44FBD004C752C /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
AF8720391CA44FBD004C752C /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
AF87203A1CA44FBD004C752C /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
AF8720531CA44FBD004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
AF8720541CA44FBD004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
AF8720561CA44FBD004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "VimeoPlayer-iOS-Example/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-Example";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "${SRCROOT}/VimeoPlayer-iOS-Example/Bridge.h";
};
name = Debug;
};
AF8720571CA44FBD004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = "VimeoPlayer-iOS-Example/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-Example";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "${SRCROOT}/VimeoPlayer-iOS-Example/Bridge.h";
};
name = Release;
};
AF8720591CA44FBD004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = "VimeoPlayer-iOS-ExampleTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-ExampleTests";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VimeoPlayer-iOS-Example.app/VimeoPlayer-iOS-Example";
};
name = Debug;
};
AF87205A1CA44FBD004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = "VimeoPlayer-iOS-ExampleTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-ExampleTests";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/VimeoPlayer-iOS-Example.app/VimeoPlayer-iOS-Example";
};
name = Release;
};
AF87205C1CA44FBD004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = "VimeoPlayer-iOS-ExampleUITests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-ExampleUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_TARGET_NAME = "VimeoPlayer-iOS-Example";
USES_XCTRUNNER = YES;
};
name = Debug;
};
AF87205D1CA44FBD004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = "VimeoPlayer-iOS-ExampleUITests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "com.vimeo.VimeoPlayer-iOS-ExampleUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_TARGET_NAME = "VimeoPlayer-iOS-Example";
USES_XCTRUNNER = YES;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
AF8720281CA44FBC004C752C /* Build configuration list for PBXProject "VimeoPlayer-iOS-Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720531CA44FBD004C752C /* Debug */,
AF8720541CA44FBD004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
AF8720551CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720561CA44FBD004C752C /* Debug */,
AF8720571CA44FBD004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
};
AF8720581CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-ExampleTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720591CA44FBD004C752C /* Debug */,
AF87205A1CA44FBD004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
};
AF87205B1CA44FBD004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer-iOS-ExampleUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF87205C1CA44FBD004C752C /* Debug */,
AF87205D1CA44FBD004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = AF8720251CA44FBC004C752C /* Project object */;
}
@@ -0,0 +1,64 @@
//
// AppDelegate.swift
// VimeoPlayer-iOS-Example
//
// Created by Alfred Hanssen on 3/24/16.
// Copyright © 2016 Vimeo. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
func applicationWillResignActive(application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
func applicationDidEnterBackground(application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}
@@ -0,0 +1,38 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8150" systemVersion="15A204g" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8122"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="14F1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="VimeoPlayer_iOS_Example" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dlK-T8-76H" customClass="VIMVideoPlayerView">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<subviews>
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="Fpe-Xd-JjQ">
<rect key="frame" x="30" y="538" width="540" height="31"/>
</slider>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m2w-Rp-esh">
<rect key="frame" x="265" y="464" width="70" height="42"/>
<inset key="contentEdgeInsets" minX="10" minY="10" maxX="10" maxY="10"/>
<state key="normal" title="Pause">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="selected" title="Play"/>
<connections>
<action selector="didTapPlayPauseButton:" destination="BYZ-38-t0r" eventType="touchUpInside" id="k4N-dE-gAb"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="Fpe-Xd-JjQ" secondAttribute="trailing" constant="32" id="Aio-uX-Vax"/>
<constraint firstAttribute="bottom" secondItem="Fpe-Xd-JjQ" secondAttribute="bottom" constant="32" id="AmU-0k-ECZ"/>
<constraint firstItem="Fpe-Xd-JjQ" firstAttribute="leading" secondItem="dlK-T8-76H" secondAttribute="leading" constant="32" id="g6f-nR-ucA"/>
<constraint firstItem="m2w-Rp-esh" firstAttribute="centerX" secondItem="dlK-T8-76H" secondAttribute="centerX" id="h8P-Ec-qS6"/>
<constraint firstItem="Fpe-Xd-JjQ" firstAttribute="top" secondItem="m2w-Rp-esh" secondAttribute="bottom" constant="32" id="ws9-bw-Fdm"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="dlK-T8-76H" secondAttribute="trailing" id="DiY-6m-b3H"/>
<constraint firstItem="dlK-T8-76H" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="K0Z-JZ-VFd"/>
<constraint firstItem="wfy-db-euE" firstAttribute="top" secondItem="dlK-T8-76H" secondAttribute="bottom" id="ObE-ww-JRe"/>
<constraint firstItem="dlK-T8-76H" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="Zeb-bG-lQ1"/>
</constraints>
</view>
<connections>
<outlet property="slider" destination="Fpe-Xd-JjQ" id="jtw-Nk-gsP"/>
<outlet property="videoPlayerView" destination="dlK-T8-76H" id="nGY-wW-ReT"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="240" y="291"/>
</scene>
</scenes>
</document>
@@ -0,0 +1,9 @@
//
// VIMVideoPlayer-iOS-Example-Bridging-Header.h
// VIMVideoPlayer-iOS-Example
//
// Created by King, Gavin on 3/10/16.
// Copyright © 2016 Gavin King. All rights reserved.
//
#import <VimeoPlayer/VimeoPlayer.h>
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
@@ -0,0 +1,139 @@
//
// ViewController.swift
// VIMVideoPlayer-iOS-Example
//
// Created by King, Gavin on 3/9/16.
// Copyright © 2016 Gavin King. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
import UIKit
class ViewController: UIViewController, VIMVideoPlayerViewDelegate
{
@IBOutlet weak var videoPlayerView: VIMVideoPlayerView!
@IBOutlet weak var slider: UISlider!
private var isScrubbing = false
override func viewDidLoad()
{
super.viewDidLoad()
self.setupVideoPlayerView()
self.setupSlider()
}
// MARK: Setup
private func setupVideoPlayerView()
{
self.videoPlayerView.player.looping = true
self.videoPlayerView.player.disableAirplay()
self.videoPlayerView.setVideoFillMode(AVLayerVideoGravityResizeAspectFill)
self.videoPlayerView.delegate = self
if let path = NSBundle.mainBundle().pathForResource("waterfall", ofType: "mp4")
{
self.videoPlayerView.player.setURL(NSURL(fileURLWithPath: path))
}
else
{
assertionFailure("Video file not found!")
}
}
private func setupSlider()
{
self.slider.addTarget(self, action: "scrubbingDidStart", forControlEvents: UIControlEvents.TouchDown)
self.slider.addTarget(self, action: "scrubbingDidChange", forControlEvents: UIControlEvents.ValueChanged)
self.slider.addTarget(self, action: "scrubbingDidEnd", forControlEvents: UIControlEvents.TouchUpInside)
self.slider.addTarget(self, action: "scrubbingDidEnd", forControlEvents: UIControlEvents.TouchUpOutside)
}
// MARK: Actions
@IBAction func didTapPlayPauseButton(sender: UIButton)
{
if self.videoPlayerView.player.playing
{
sender.selected = true
self.videoPlayerView.player.pause()
}
else
{
sender.selected = false
self.videoPlayerView.player.play()
}
}
// MARK: Scrubbing Actions
func scrubbingDidStart()
{
self.isScrubbing = true
self.videoPlayerView.player.startScrubbing()
}
func scrubbingDidChange()
{
guard let duration = self.videoPlayerView.player.player.currentItem?.duration
where self.isScrubbing == true else
{
return
}
let time = Float(CMTimeGetSeconds(duration)) * self.slider.value
self.videoPlayerView.player.scrub(time)
}
func scrubbingDidEnd()
{
self.videoPlayerView.player.stopScrubbing()
self.isScrubbing = false
}
// MARK: VIMVideoPlayerViewDelegate
func videoPlayerViewIsReadyToPlayVideo(videoPlayerView: VIMVideoPlayerView?)
{
self.videoPlayerView.player.play()
}
func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, timeDidChange cmTime: CMTime)
{
guard let duration = self.videoPlayerView.player.player.currentItem?.duration
where self.isScrubbing == false else
{
return
}
let durationInSeconds = Float(CMTimeGetSeconds(duration))
let timeInSeconds = Float(CMTimeGetSeconds(cmTime))
self.slider.value = timeInSeconds / durationInSeconds
}
}
@@ -0,0 +1,36 @@
//
// VimeoPlayer_iOS_ExampleTests.swift
// VimeoPlayer-iOS-ExampleTests
//
// Created by Alfred Hanssen on 3/24/16.
// Copyright © 2016 Vimeo. All rights reserved.
//
import XCTest
@testable import VimeoPlayer_iOS_Example
class VimeoPlayer_iOS_ExampleTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measureBlock {
// Put the code you want to measure the time of here.
}
}
}
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
@@ -0,0 +1,36 @@
//
// VimeoPlayer_iOS_ExampleUITests.swift
// VimeoPlayer-iOS-ExampleUITests
//
// Created by Alfred Hanssen on 3/24/16.
// Copyright © 2016 Vimeo. All rights reserved.
//
import XCTest
class VimeoPlayer_iOS_ExampleUITests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests its important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
}
+4 -1
View File
@@ -1,4 +1,7 @@
Copyright (c) 2014-2015 Vimeo (https://vimeo.com)
The MIT License (MIT)
Copyright (c) 2014-2016 Vimeo (https://vimeo.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+54 -44
View File
@@ -1,6 +1,6 @@
# VIMVideoPlayer
`VIMVideoPlayer` is a simple wrapper around the [`AVPlayer`](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html) and [`AVPlayerLayer`](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayerLayer_Class/index.html#//apple_ref/occ/cl/AVPlayerLayer) classes.
`VIMVideoPlayer` is a simple wrapper around the [AVPlayer](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html) and [AVPlayerLayer](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayerLayer_Class/index.html#//apple_ref/occ/cl/AVPlayerLayer) classes.
## Setup
@@ -11,48 +11,46 @@ Do this by including this repo as a git submodule or by using cocoapods:
```Ruby
# Add this to your podfile
target 'MyTarget' do
pod 'VIMVideoPlayer', {version_number}
pod 'VIMVideoPlayer', {CURRENT_POD_VERSION}
end
```
## Usage
Create a new `VIMVideoPlayerView` and add it to your view hierarchy:
Create a new `VIMVideoPlayerView` instance or set up an @IBOutlet:
```Objective-c
#import "VIMVideoPlayerView.h"
```Swift
@IBOutlet weak var videoPlayerView: VIMVideoPlayerView!
...
- (void)viewDidLoad
override func viewDidLoad()
{
[super viewDidLoad];
self.videoPlayerView = [[VIMVideoPlayerView alloc] init];
self.videoPlayerView.translatesAutoresizingMaskIntoConstraints = NO;
self.videoPlayerView.delegate = self;
[self.videoPlayerView setVideoFillMode:AVLayerVideoGravityResizeAspect];
[self.videoPlayerView.player enableTimeUpdates];
[self.videoPlayerView.player enableAirplay];
[self.view addSubview:self.videoPlayerView];
NSDictionary *views = NSDictionaryOfVariableBindings(_videoPlayerView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_videoPlayerView]-0-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_videoPlayerView]-0-|" options:0 metrics:nil views:views]];
// Configure the player as needed
self.videoPlayerView.player.looping = true
self.videoPlayerView.player.disableAirplay()
self.videoPlayerView.setVideoFillMode(AVLayerVideoGravityResizeAspectFill)
self.videoPlayerView.delegate = self
}
```
Play a video:
```Objective-c
```Swift
// Using an NSURL
NSURL *URL = ...;
[self.videoPlayerView.player setURL:URL];
[self.videoPlayerView.player play];
if let path = NSBundle.mainBundle().pathForResource("waterfall", ofType: "mp4")
{
self.videoPlayerView.player.setURL(NSURL(fileURLWithPath: path))
}
else
{
// Video file not found!
}
/*
Note: This must be a URL to an actual video resource (e.g. http://website.com/video.mp4 or .m3u8 etc.),
@@ -62,31 +60,33 @@ NSURL *URL = ...;
// Using an AVPlayerItem
AVPlayerItem *playerItem = ...;
[self.videoPlayerView.player setPlayerItem:playerItem];
[self.videoPlayerView.player play];
let playerItem: AVPlayerItem = ...
self.videoPlayerView.player.setPlayerItem(playerItem)
self.videoPlayerView.player.play()
// Or using an AVAsset
AVAsset *asset = ...;
[self.videoPlayerView.player setAsset:asset];
[self.videoPlayerView.player play];
let asset: AVAsset = ...
self.videoPlayerView.player.setAsset(asset)
self.videoPlayerView.player.play()
```
Optionally implement the `VIMVideoPlayerViewDelegate` protocol methods:
```Objective-c
@protocol VIMVideoPlayerViewDelegate <NSObject>
```Swift
@optional
- (void)videoPlayerViewIsReadyToPlayVideo:(VIMVideoPlayerView *)videoPlayerView;
- (void)videoPlayerViewDidReachEnd:(VIMVideoPlayerView *)videoPlayerView;
- (void)videoPlayerView:(VIMVideoPlayerView *)videoPlayerView timeDidChange:(CMTime)cmTime;
- (void)videoPlayerView:(VIMVideoPlayerView *)videoPlayerView loadedTimeRangeDidChange:(float)duration;
- (void)videoPlayerView:(VIMVideoPlayerView *)videoPlayerView didFailWithError:(NSError *)error;
protocol VIMVideoPlayerViewDelegate
{
optional func videoPlayerViewIsReadyToPlayVideo(videoPlayerView: VIMVideoPlayerView!)
optional func videoPlayerViewDidReachEnd(videoPlayerView: VIMVideoPlayerView!)
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, timeDidChange cmTime: CMTime)
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, loadedTimeRangeDidChange duration: Float)
optional func videoPlayerViewPlaybackBufferEmpty(videoPlayerView: VIMVideoPlayerView!)
optional func videoPlayerViewPlaybackLikelyToKeepUp(videoPlayerView: VIMVideoPlayerView!)
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, didFailWithError error: NSError!)
}
@end
```
See [`VIMVideoPlayer.h`](https://github.com/vimeo/VIMVideoPlayer/blob/master/VIMVideoPlayer/VIMVideoPlayer.h) for additional configuration options.
@@ -103,14 +103,24 @@ You can use the [Vimeo iOS SDK](https://github.com/vimeo/VIMNetworking) to inter
For full documentation on the Vimeo API go [here](https://developer.vimeo.com/).
## Found an Issue?
Please file it in the git [issue tracker](https://github.com/vimeo/VIMVideoPlayer/issues).
## Want to Contribute?
If you'd like to contribute, please follow our guidelines found in [CONTRIBUTING.md](CONTRIBUTING.md).
## License
`VIMVideoPlayer` is available under the MIT license. See the LICENSE file for more info.
`VIMVideoPlayer` is available under the MIT license. See the [LICENSE](LICENSE.md) file for more info.
## Questions?
Tweet at us here: @vimeoapi
Tweet at us here: [@vimeoapi](https://twitter.com/vimeoapi).
Post on [Stackoverflow](http://stackoverflow.com/questions/tagged/vimeo-ios) with the tag `vimeo-ios`
Post on [Stackoverflow](http://stackoverflow.com/questions/tagged/vimeo-ios) with the tag `vimeo-ios`.
Get in touch [here](https://vimeo.com/help/contact)
Get in touch [here](https://vimeo.com/help/contact).
Interested in working at Vimeo? We're [hiring](https://vimeo.com/jobs)!
-11
View File
@@ -1,11 +0,0 @@
#import <UIKit/UIKit.h>
//! Project version number for VIMVideoKit.
FOUNDATION_EXPORT double VIMVideoKitVersionNumber;
//! Project version string for VIMVideoKit.
FOUNDATION_EXPORT const unsigned char VIMVideoKitVersionString[];
#import <VIMVideoKit/VIMVideoPlayer.h>
#import <VIMVideoKit/VIMVideoPlayerView.h>
@@ -0,0 +1,409 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
AF8720021CA447E5004C752C /* VimeoPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = AF8720011CA447E5004C752C /* VimeoPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
AF8720091CA447E5004C752C /* VimeoPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF871FFE1CA447E5004C752C /* VimeoPlayer.framework */; };
AF87200E1CA447E5004C752C /* VimeoPlayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = AF87200D1CA447E5004C752C /* VimeoPlayerTests.m */; };
AF87201C1CA44814004C752C /* VIMVideoPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = AF8720181CA44814004C752C /* VIMVideoPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
AF87201D1CA44814004C752C /* VIMVideoPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = AF8720191CA44814004C752C /* VIMVideoPlayer.m */; };
AF87201E1CA44814004C752C /* VIMVideoPlayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF87201A1CA44814004C752C /* VIMVideoPlayerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
AF87201F1CA44814004C752C /* VIMVideoPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = AF87201B1CA44814004C752C /* VIMVideoPlayerView.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
AF87200A1CA447E5004C752C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = AF871FF51CA447E4004C752C /* Project object */;
proxyType = 1;
remoteGlobalIDString = AF871FFD1CA447E5004C752C;
remoteInfo = VimeoPlayer;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
AF871FFE1CA447E5004C752C /* VimeoPlayer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VimeoPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AF8720011CA447E5004C752C /* VimeoPlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VimeoPlayer.h; sourceTree = "<group>"; };
AF8720031CA447E5004C752C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AF8720081CA447E5004C752C /* VimeoPlayerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VimeoPlayerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
AF87200D1CA447E5004C752C /* VimeoPlayerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VimeoPlayerTests.m; sourceTree = "<group>"; };
AF87200F1CA447E5004C752C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AF8720181CA44814004C752C /* VIMVideoPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayer.h; path = "../../VIMVideoPlayer-Source/VIMVideoPlayer.h"; sourceTree = "<group>"; };
AF8720191CA44814004C752C /* VIMVideoPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayer.m; path = "../../VIMVideoPlayer-Source/VIMVideoPlayer.m"; sourceTree = "<group>"; };
AF87201A1CA44814004C752C /* VIMVideoPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VIMVideoPlayerView.h; path = "../../VIMVideoPlayer-Source/VIMVideoPlayerView.h"; sourceTree = "<group>"; };
AF87201B1CA44814004C752C /* VIMVideoPlayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VIMVideoPlayerView.m; path = "../../VIMVideoPlayer-Source/VIMVideoPlayerView.m"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
AF871FFA1CA447E5004C752C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AF8720051CA447E5004C752C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
AF8720091CA447E5004C752C /* VimeoPlayer.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
AF871FF41CA447E4004C752C = {
isa = PBXGroup;
children = (
AF8720001CA447E5004C752C /* VimeoPlayer */,
AF87200C1CA447E5004C752C /* VimeoPlayerTests */,
AF871FFF1CA447E5004C752C /* Products */,
);
sourceTree = "<group>";
};
AF871FFF1CA447E5004C752C /* Products */ = {
isa = PBXGroup;
children = (
AF871FFE1CA447E5004C752C /* VimeoPlayer.framework */,
AF8720081CA447E5004C752C /* VimeoPlayerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
AF8720001CA447E5004C752C /* VimeoPlayer */ = {
isa = PBXGroup;
children = (
AF8720011CA447E5004C752C /* VimeoPlayer.h */,
AF8720181CA44814004C752C /* VIMVideoPlayer.h */,
AF8720191CA44814004C752C /* VIMVideoPlayer.m */,
AF87201A1CA44814004C752C /* VIMVideoPlayerView.h */,
AF87201B1CA44814004C752C /* VIMVideoPlayerView.m */,
AF8720031CA447E5004C752C /* Info.plist */,
);
path = VimeoPlayer;
sourceTree = "<group>";
};
AF87200C1CA447E5004C752C /* VimeoPlayerTests */ = {
isa = PBXGroup;
children = (
AF87200D1CA447E5004C752C /* VimeoPlayerTests.m */,
AF87200F1CA447E5004C752C /* Info.plist */,
);
path = VimeoPlayerTests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
AF871FFB1CA447E5004C752C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
AF87201C1CA44814004C752C /* VIMVideoPlayer.h in Headers */,
AF87201E1CA44814004C752C /* VIMVideoPlayerView.h in Headers */,
AF8720021CA447E5004C752C /* VimeoPlayer.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
AF871FFD1CA447E5004C752C /* VimeoPlayer */ = {
isa = PBXNativeTarget;
buildConfigurationList = AF8720121CA447E5004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer" */;
buildPhases = (
AF871FF91CA447E5004C752C /* Sources */,
AF871FFA1CA447E5004C752C /* Frameworks */,
AF871FFB1CA447E5004C752C /* Headers */,
AF871FFC1CA447E5004C752C /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = VimeoPlayer;
productName = VimeoPlayer;
productReference = AF871FFE1CA447E5004C752C /* VimeoPlayer.framework */;
productType = "com.apple.product-type.framework";
};
AF8720071CA447E5004C752C /* VimeoPlayerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = AF8720151CA447E5004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayerTests" */;
buildPhases = (
AF8720041CA447E5004C752C /* Sources */,
AF8720051CA447E5004C752C /* Frameworks */,
AF8720061CA447E5004C752C /* Resources */,
);
buildRules = (
);
dependencies = (
AF87200B1CA447E5004C752C /* PBXTargetDependency */,
);
name = VimeoPlayerTests;
productName = VimeoPlayerTests;
productReference = AF8720081CA447E5004C752C /* VimeoPlayerTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
AF871FF51CA447E4004C752C /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = Vimeo;
TargetAttributes = {
AF871FFD1CA447E5004C752C = {
CreatedOnToolsVersion = 7.2;
};
AF8720071CA447E5004C752C = {
CreatedOnToolsVersion = 7.2;
};
};
};
buildConfigurationList = AF871FF81CA447E4004C752C /* Build configuration list for PBXProject "VimeoPlayer" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = AF871FF41CA447E4004C752C;
productRefGroup = AF871FFF1CA447E5004C752C /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
AF871FFD1CA447E5004C752C /* VimeoPlayer */,
AF8720071CA447E5004C752C /* VimeoPlayerTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
AF871FFC1CA447E5004C752C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AF8720061CA447E5004C752C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
AF871FF91CA447E5004C752C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF87201F1CA44814004C752C /* VIMVideoPlayerView.m in Sources */,
AF87201D1CA44814004C752C /* VIMVideoPlayer.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AF8720041CA447E5004C752C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AF87200E1CA447E5004C752C /* VimeoPlayerTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
AF87200B1CA447E5004C752C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = AF871FFD1CA447E5004C752C /* VimeoPlayer */;
targetProxy = AF87200A1CA447E5004C752C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
AF8720101CA447E5004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
AF8720111CA447E5004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.2;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
AF8720131CA447E5004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = VimeoPlayer/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VimeoPlayer;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
AF8720141CA447E5004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = VimeoPlayer/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VimeoPlayer;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
AF8720161CA447E5004C752C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = VimeoPlayerTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VimeoPlayerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
AF8720171CA447E5004C752C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = VimeoPlayerTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VimeoPlayerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
AF871FF81CA447E4004C752C /* Build configuration list for PBXProject "VimeoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720101CA447E5004C752C /* Debug */,
AF8720111CA447E5004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
AF8720121CA447E5004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720131CA447E5004C752C /* Debug */,
AF8720141CA447E5004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
AF8720151CA447E5004C752C /* Build configuration list for PBXNativeTarget "VimeoPlayerTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
AF8720161CA447E5004C752C /* Debug */,
AF8720171CA447E5004C752C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = AF871FF51CA447E4004C752C /* Project object */;
}
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
LastUpgradeVersion = "0730"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -14,10 +14,10 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B698D9201C264D5B0011F8B4"
BuildableName = "VIMVideoKit.framework"
BlueprintName = "VIMVideoKit"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
BlueprintIdentifier = "AF871FFD1CA447E5004C752C"
BuildableName = "VimeoPlayer.framework"
BlueprintName = "VimeoPlayer"
ReferencedContainer = "container:VimeoPlayer.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
@@ -28,7 +28,26 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "AF8720071CA447E5004C752C"
BuildableName = "VimeoPlayerTests.xctest"
BlueprintName = "VimeoPlayerTests"
ReferencedContainer = "container:VimeoPlayer.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "AF871FFD1CA447E5004C752C"
BuildableName = "VimeoPlayer.framework"
BlueprintName = "VimeoPlayer"
ReferencedContainer = "container:VimeoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
@@ -45,10 +64,10 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B698D9201C264D5B0011F8B4"
BuildableName = "VIMVideoKit.framework"
BlueprintName = "VIMVideoKit"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
BlueprintIdentifier = "AF871FFD1CA447E5004C752C"
BuildableName = "VimeoPlayer.framework"
BlueprintName = "VimeoPlayer"
ReferencedContainer = "container:VimeoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
@@ -63,10 +82,10 @@
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B698D9201C264D5B0011F8B4"
BuildableName = "VIMVideoKit.framework"
BlueprintName = "VIMVideoKit"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
BlueprintIdentifier = "AF871FFD1CA447E5004C752C"
BuildableName = "VimeoPlayer.framework"
BlueprintName = "VimeoPlayer"
ReferencedContainer = "container:VimeoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
@@ -0,0 +1,20 @@
//
// VimeoPlayer.h
// VimeoPlayer
//
// Created by Alfred Hanssen on 3/24/16.
// Copyright © 2016 Vimeo. All rights reserved.
//
@import UIKit;
//! Project version number for VimeoPlayer.
FOUNDATION_EXPORT double VimeoPlayerVersionNumber;
//! Project version string for VimeoPlayer.
FOUNDATION_EXPORT const unsigned char VimeoPlayerVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <VimeoPlayer/PublicHeader.h>
#import <VimeoPlayer/VIMVideoPlayer.h>
#import <VimeoPlayer/VIMVideoPlayerView.h>
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
@@ -1,18 +1,18 @@
//
// VIMVideoPlayerTests.m
// VIMVideoPlayerTests
// VimeoPlayerTests.m
// VimeoPlayerTests
//
// Created by Hanssen, Alfie on 9/10/15.
// Copyright © 2015 Vimeo. All rights reserved.
// Created by Alfred Hanssen on 3/24/16.
// Copyright © 2016 Vimeo. All rights reserved.
//
#import <XCTest/XCTest.h>
@interface VIMVideoPlayerTests : XCTestCase
@interface VimeoPlayerTests : XCTestCase
@end
@implementation VIMVideoPlayerTests
@implementation VimeoPlayerTests
- (void)setUp {
[super setUp];
@@ -1,6 +1,6 @@
//
// VideoPlayer.h
// Smokescreen
// Vimeo
//
// Created by Alfred Hanssen on 2/9/14.
// Copyright (c) 2014-2015 Vimeo (https://vimeo.com)
@@ -24,12 +24,13 @@
// THE SOFTWARE.
//
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@import Foundation;
@import AVFoundation;
@class AVPlayer;
@class VIMVideoPlayer;
static const float TimeUpdateInterval = 0.1f;
@protocol VIMVideoPlayerDelegate <NSObject>
@optional
@@ -1,6 +1,6 @@
//
// VideoPlayer.m
// Smokescreen
// Vimeo
//
// Created by Alfred Hanssen on 2/9/14.
// Copyright (c) 2014-2015 Vimeo (https://vimeo.com)
@@ -28,7 +28,6 @@
static const float DefaultPlayableBufferLength = 2.0f;
static const float DefaultVolumeFadeDuration = 1.0f;
static const float TimeObserverInterval = 0.01f;
NSString * const kVideoPlayerErrorDomain = @"kVideoPlayerErrorDomain";
@@ -99,6 +98,8 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
self.muted = NO;
self.looping = NO;
self.player.usesExternalPlaybackWhileExternalScreenIsActive = YES;
[self setVolume:1.0f];
[self enableTimeUpdates];
[self enableAirplay];
@@ -164,7 +165,8 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
[self resetPlayerItemIfNecessary];
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:asset automaticallyLoadedAssetKeys:@[NSStringFromSelector(@selector(tracks))]];
AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset: asset];
if (!playerItem)
{
[self reportUnableToCreatePlayerItem];
@@ -444,13 +446,16 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
{
[self.player seekToTime:kCMTimeZero toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero completionHandler:^(BOOL finished) {
_isAtEndTime = NO;
if (self.isPlaying)
if (finished)
{
[self play];
_isAtEndTime = NO;
if (self.isPlaying)
{
[self play];
}
}
}];
}
@@ -639,7 +644,7 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
}
__weak typeof (self) weakSelf = self;
self.timeObserverToken = [self.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(TimeObserverInterval, NSEC_PER_SEC) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) {
self.timeObserverToken = [self.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(TimeUpdateInterval, NSEC_PER_SEC) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) {
__strong typeof (self) strongSelf = weakSelf;
if (!strongSelf)
@@ -716,12 +721,29 @@ static void *VideoPlayer_PlayerItemLoadedTimeRangesContext = &VideoPlayer_Player
NSLog(@"Video player Status Failed: player item error = %@", self.player.currentItem.error);
NSLog(@"Video player Status Failed: player error = %@", self.player.error);
// First, try to use the player error if it exists
NSError *error = self.player.error;
// Otherwise try to use the current item's error
if (!error)
{
error = self.player.currentItem.error;
}
else
// If there's a more specific underlyng error, use that
NSError *underlyingError = [error.userInfo objectForKey:NSUnderlyingErrorKey];
if (underlyingError)
{
error = underlyingError;
}
// Finally, construct our own as a last resort
if (!error)
{
error = [NSError errorWithDomain:kVideoPlayerErrorDomain code:0 userInfo:@{NSLocalizedDescriptionKey : @"unknown player error, status == AVPlayerItemStatusFailed"}];
}
@@ -1,6 +1,6 @@
//
// VideoPlayerView.h
// Smokescreen
// Vimeo
//
// Created by Alfred Hanssen on 2/9/14.
// Copyright (c) 2014-2015 Vimeo (https://vimeo.com)
@@ -24,8 +24,9 @@
// THE SOFTWARE.
//
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@import Foundation;
@import AVFoundation;
@import UIKit;
@class VIMVideoPlayer;
@class VIMVideoPlayerView;
@@ -1,6 +1,6 @@
//
// VideoPlayerView.m
// Smokescreen
// Vimeo
//
// Created by Alfred Hanssen on 2/9/14.
// Copyright (c) 2014-2015 Vimeo (https://vimeo.com)
@@ -27,8 +27,6 @@
#import "VIMVideoPlayerView.h"
#import "VIMVideoPlayer.h"
#import <AVFoundation/AVFoundation.h>
@interface VIMVideoPlayerView () <VIMVideoPlayerDelegate>
@end
+6 -6
View File
@@ -9,7 +9,7 @@
Pod::Spec.new do |s|
s.name = "VIMVideoPlayer"
s.version = "6.0.0"
s.version = "6.0.1"
s.summary = "A simple wrapper around the AVPlayer and AVPlayerLayer classes."
s.description = <<-DESC
VIMVideoPlayer is a simple wrapper around the AVPlayer and AVPlayerLayer classes. Check out the README for details. And the Pegasus project for a demo.
@@ -27,14 +27,14 @@ Pod::Spec.new do |s|
"Stephen Fredieu" => "support@vimeo.com",
"Rahul Kumar" => "support@vimeo.com" }
s.social_media_url = "http://twitter.com/vimeo"
s.social_media_url = "http://twitter.com/vimeoapi"
s.ios.deployment_target = "7.0"
s.ios.deployment_target = '7.0'
s.tvos.deployment_target = '9.0'
s.source = { :git => "https://github.com/vimeo/VIMVideoPlayer.git", :tag => s.version.to_s }
s.source_files = "VIMVideoPlayer", "VIMVideoPlayer/*.{h,m}"
s.exclude_files = "VIMVideoPlayer/Exclude"
s.source_files = "VIMVideoPlayer-Source/**/*.{h,m}"
s.requires_arc = true
end
end
-503
View File
@@ -1,503 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
501A3B931BA205A20059040B /* VIMVideoPlayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 501A3B921BA205A20059040B /* VIMVideoPlayerTests.m */; };
501A3B951BA205A20059040B /* libVIMVideoPlayer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E507001B1E23A600DF1F7A /* libVIMVideoPlayer.a */; };
50E5071E1B1E23E100DF1F7A /* VIMVideoPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 50E5071B1B1E23E100DF1F7A /* VIMVideoPlayer.m */; };
50E5071F1B1E23E100DF1F7A /* VIMVideoPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 50E5071D1B1E23E100DF1F7A /* VIMVideoPlayerView.m */; };
B698D9241C264D5C0011F8B4 /* VIMVideoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B698D9231C264D5C0011F8B4 /* VIMVideoKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
B698D9291C264D670011F8B4 /* VIMVideoPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 50E5071B1B1E23E100DF1F7A /* VIMVideoPlayer.m */; };
B698D92A1C264D670011F8B4 /* VIMVideoPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 50E5071D1B1E23E100DF1F7A /* VIMVideoPlayerView.m */; };
B698D92B1C264DD10011F8B4 /* VIMVideoPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E5071A1B1E23E100DF1F7A /* VIMVideoPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
B698D92C1C264DD10011F8B4 /* VIMVideoPlayerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 50E5071C1B1E23E100DF1F7A /* VIMVideoPlayerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
501A3B961BA205A20059040B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 50E506F81B1E23A600DF1F7A /* Project object */;
proxyType = 1;
remoteGlobalIDString = 50E506FF1B1E23A600DF1F7A;
remoteInfo = VIMVideoPlayer;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
50E506FE1B1E23A600DF1F7A /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
501A3B901BA205A20059040B /* VIMVideoPlayerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VIMVideoPlayerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
501A3B921BA205A20059040B /* VIMVideoPlayerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VIMVideoPlayerTests.m; sourceTree = "<group>"; };
501A3B941BA205A20059040B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
50E507001B1E23A600DF1F7A /* libVIMVideoPlayer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libVIMVideoPlayer.a; sourceTree = BUILT_PRODUCTS_DIR; };
50E5071A1B1E23E100DF1F7A /* VIMVideoPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VIMVideoPlayer.h; sourceTree = "<group>"; };
50E5071B1B1E23E100DF1F7A /* VIMVideoPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VIMVideoPlayer.m; sourceTree = "<group>"; };
50E5071C1B1E23E100DF1F7A /* VIMVideoPlayerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VIMVideoPlayerView.h; sourceTree = "<group>"; };
50E5071D1B1E23E100DF1F7A /* VIMVideoPlayerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VIMVideoPlayerView.m; sourceTree = "<group>"; };
B698D9211C264D5B0011F8B4 /* VIMVideoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VIMVideoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B698D9231C264D5C0011F8B4 /* VIMVideoKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VIMVideoKit.h; sourceTree = "<group>"; };
B698D9251C264D5C0011F8B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
501A3B8D1BA205A20059040B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
501A3B951BA205A20059040B /* libVIMVideoPlayer.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
50E506FD1B1E23A600DF1F7A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
B698D91D1C264D5B0011F8B4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
501A3B911BA205A20059040B /* VIMVideoPlayerTests */ = {
isa = PBXGroup;
children = (
501A3B921BA205A20059040B /* VIMVideoPlayerTests.m */,
501A3B941BA205A20059040B /* Info.plist */,
);
path = VIMVideoPlayerTests;
sourceTree = "<group>";
};
50E506F71B1E23A600DF1F7A = {
isa = PBXGroup;
children = (
50E507021B1E23A600DF1F7A /* VIMVideoPlayer */,
501A3B911BA205A20059040B /* VIMVideoPlayerTests */,
B698D9221C264D5C0011F8B4 /* VIMVideoKit */,
50E507011B1E23A600DF1F7A /* Products */,
);
sourceTree = "<group>";
};
50E507011B1E23A600DF1F7A /* Products */ = {
isa = PBXGroup;
children = (
50E507001B1E23A600DF1F7A /* libVIMVideoPlayer.a */,
501A3B901BA205A20059040B /* VIMVideoPlayerTests.xctest */,
B698D9211C264D5B0011F8B4 /* VIMVideoKit.framework */,
);
name = Products;
sourceTree = "<group>";
};
50E507021B1E23A600DF1F7A /* VIMVideoPlayer */ = {
isa = PBXGroup;
children = (
50E5071A1B1E23E100DF1F7A /* VIMVideoPlayer.h */,
50E5071B1B1E23E100DF1F7A /* VIMVideoPlayer.m */,
50E5071C1B1E23E100DF1F7A /* VIMVideoPlayerView.h */,
50E5071D1B1E23E100DF1F7A /* VIMVideoPlayerView.m */,
);
path = VIMVideoPlayer;
sourceTree = "<group>";
};
B698D9221C264D5C0011F8B4 /* VIMVideoKit */ = {
isa = PBXGroup;
children = (
B698D9231C264D5C0011F8B4 /* VIMVideoKit.h */,
B698D9251C264D5C0011F8B4 /* Info.plist */,
);
path = VIMVideoKit;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
B698D91E1C264D5B0011F8B4 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
B698D92B1C264DD10011F8B4 /* VIMVideoPlayer.h in Headers */,
B698D92C1C264DD10011F8B4 /* VIMVideoPlayerView.h in Headers */,
B698D9241C264D5C0011F8B4 /* VIMVideoKit.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
501A3B8F1BA205A20059040B /* VIMVideoPlayerTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 501A3B981BA205A20059040B /* Build configuration list for PBXNativeTarget "VIMVideoPlayerTests" */;
buildPhases = (
501A3B8C1BA205A20059040B /* Sources */,
501A3B8D1BA205A20059040B /* Frameworks */,
501A3B8E1BA205A20059040B /* Resources */,
);
buildRules = (
);
dependencies = (
501A3B971BA205A20059040B /* PBXTargetDependency */,
);
name = VIMVideoPlayerTests;
productName = VIMVideoPlayerTests;
productReference = 501A3B901BA205A20059040B /* VIMVideoPlayerTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
50E506FF1B1E23A600DF1F7A /* VIMVideoPlayer */ = {
isa = PBXNativeTarget;
buildConfigurationList = 50E507141B1E23A600DF1F7A /* Build configuration list for PBXNativeTarget "VIMVideoPlayer" */;
buildPhases = (
50E506FC1B1E23A600DF1F7A /* Sources */,
50E506FD1B1E23A600DF1F7A /* Frameworks */,
50E506FE1B1E23A600DF1F7A /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = VIMVideoPlayer;
productName = VIMVideoPlayer;
productReference = 50E507001B1E23A600DF1F7A /* libVIMVideoPlayer.a */;
productType = "com.apple.product-type.library.static";
};
B698D9201C264D5B0011F8B4 /* VIMVideoKit */ = {
isa = PBXNativeTarget;
buildConfigurationList = B698D9281C264D5C0011F8B4 /* Build configuration list for PBXNativeTarget "VIMVideoKit" */;
buildPhases = (
B698D91C1C264D5B0011F8B4 /* Sources */,
B698D91D1C264D5B0011F8B4 /* Frameworks */,
B698D91E1C264D5B0011F8B4 /* Headers */,
B698D91F1C264D5B0011F8B4 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = VIMVideoKit;
productName = VIMVideoPlayerFramework;
productReference = B698D9211C264D5B0011F8B4 /* VIMVideoKit.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
50E506F81B1E23A600DF1F7A /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0630;
ORGANIZATIONNAME = Vimeo;
TargetAttributes = {
501A3B8F1BA205A20059040B = {
CreatedOnToolsVersion = 7.0;
};
50E506FF1B1E23A600DF1F7A = {
CreatedOnToolsVersion = 6.3.1;
};
B698D9201C264D5B0011F8B4 = {
CreatedOnToolsVersion = 7.2;
};
};
};
buildConfigurationList = 50E506FB1B1E23A600DF1F7A /* Build configuration list for PBXProject "VIMVideoPlayer" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 50E506F71B1E23A600DF1F7A;
productRefGroup = 50E507011B1E23A600DF1F7A /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
50E506FF1B1E23A600DF1F7A /* VIMVideoPlayer */,
501A3B8F1BA205A20059040B /* VIMVideoPlayerTests */,
B698D9201C264D5B0011F8B4 /* VIMVideoKit */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
501A3B8E1BA205A20059040B /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
B698D91F1C264D5B0011F8B4 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
501A3B8C1BA205A20059040B /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
501A3B931BA205A20059040B /* VIMVideoPlayerTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
50E506FC1B1E23A600DF1F7A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
50E5071F1B1E23E100DF1F7A /* VIMVideoPlayerView.m in Sources */,
50E5071E1B1E23E100DF1F7A /* VIMVideoPlayer.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B698D91C1C264D5B0011F8B4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B698D9291C264D670011F8B4 /* VIMVideoPlayer.m in Sources */,
B698D92A1C264D670011F8B4 /* VIMVideoPlayerView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
501A3B971BA205A20059040B /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 50E506FF1B1E23A600DF1F7A /* VIMVideoPlayer */;
targetProxy = 501A3B961BA205A20059040B /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
501A3B991BA205A20059040B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_TESTABILITY = YES;
INFOPLIST_FILE = VIMVideoPlayerTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VIMVideoPlayerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
501A3B9A1BA205A20059040B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
INFOPLIST_FILE = VIMVideoPlayerTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VIMVideoPlayerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
50E507121B1E23A600DF1F7A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
50E507131B1E23A600DF1F7A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
50E507151B1E23A600DF1F7A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
};
50E507161B1E23A600DF1F7A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Release;
};
B698D9261C264D5C0011F8B4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_TESTABILITY = YES;
INFOPLIST_FILE = VIMVideoKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VIMVideoKit;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
B698D9271C264D5C0011F8B4 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = VIMVideoKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.vimeo.VIMVideoKit;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
501A3B981BA205A20059040B /* Build configuration list for PBXNativeTarget "VIMVideoPlayerTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
501A3B991BA205A20059040B /* Debug */,
501A3B9A1BA205A20059040B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
50E506FB1B1E23A600DF1F7A /* Build configuration list for PBXProject "VIMVideoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
50E507121B1E23A600DF1F7A /* Debug */,
50E507131B1E23A600DF1F7A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
50E507141B1E23A600DF1F7A /* Build configuration list for PBXNativeTarget "VIMVideoPlayer" */ = {
isa = XCConfigurationList;
buildConfigurations = (
50E507151B1E23A600DF1F7A /* Debug */,
50E507161B1E23A600DF1F7A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B698D9281C264D5C0011F8B4 /* Build configuration list for PBXNativeTarget "VIMVideoKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B698D9261C264D5C0011F8B4 /* Debug */,
B698D9271C264D5C0011F8B4 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 50E506F81B1E23A600DF1F7A /* Project object */;
}
@@ -1,114 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50E506FF1B1E23A600DF1F7A"
BuildableName = "libVIMVideoPlayer.a"
BlueprintName = "VIMVideoPlayer"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B698D9201C264D5B0011F8B4"
BuildableName = "VIMVideoKit.framework"
BlueprintName = "VIMVideoKit"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
codeCoverageEnabled = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "501A3B8F1BA205A20059040B"
BuildableName = "VIMVideoPlayerTests.xctest"
BlueprintName = "VIMVideoPlayerTests"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50E506FF1B1E23A600DF1F7A"
BuildableName = "libVIMVideoPlayer.a"
BlueprintName = "VIMVideoPlayer"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50E506FF1B1E23A600DF1F7A"
BuildableName = "libVIMVideoPlayer.a"
BlueprintName = "VIMVideoPlayer"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "50E506FF1B1E23A600DF1F7A"
BuildableName = "libVIMVideoPlayer.a"
BlueprintName = "VIMVideoPlayer"
ReferencedContainer = "container:VIMVideoPlayer.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Examples/VimeoPlayer-iOS-Example/VimeoPlayer-iOS-Example.xcodeproj">
</FileRef>
<FileRef
location = "group:VIMVideoPlayer-Framework/VimeoPlayer.xcodeproj">
</FileRef>
</Workspace>