diff --git a/Example/.DS_Store b/Example/.DS_Store index 7e3dc6ac0..bcf398864 100644 Binary files a/Example/.DS_Store and b/Example/.DS_Store differ diff --git a/Example/Podfile b/Example/Podfile index 878e6d16f..ce609def5 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -46,7 +46,7 @@ target 'SJVideoPlayer_Example' do # pod 'SJBaseVideoPlayer/IJKPlayer', :path => '../../SJBaseVideoPlayer' # ## 切换为 Aliplayer, 详见: https://github.com/changsanjiang/SJVideoPlayer/wiki/Use-AliPlayer -# pod 'SJBaseVideoPlayer/AliPlayer', :path => '../../SJBaseVideoPlayer' +# pod 'SJBaseVideoPlayer/AliPlayer'#, :path => '../../SJBaseVideoPlayer' # ## 切换为 AliVodPlayer, 详见: https://github.com/changsanjiang/SJVideoPlayer/wiki/Use-AliVodPlayer # pod 'SJBaseVideoPlayer/AliVodPlayer', :path => '../../SJBaseVideoPlayer' diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 7a44c7703..b4f44ecfa 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -7,29 +7,29 @@ PODS: - SDWebImage (5.9.5): - SDWebImage/Core (= 5.9.5) - SDWebImage/Core (5.9.5) - - SJBaseVideoPlayer (3.4.4): + - SJBaseVideoPlayer (3.4.5): - Masonry - - SJBaseVideoPlayer/AVPlayer (= 3.4.4) - - SJBaseVideoPlayer/Common (= 3.4.4) + - SJBaseVideoPlayer/AVPlayer (= 3.4.5) + - SJBaseVideoPlayer/Common (= 3.4.5) - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/AVPlayer (3.4.4): + - SJBaseVideoPlayer/AVPlayer (3.4.5): - Masonry - SJBaseVideoPlayer/Common - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/Common (3.4.4): + - SJBaseVideoPlayer/Common (3.4.5): - Masonry - SJBaseVideoPlayer/ResourceLoader - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/ResourceLoader (3.4.4): + - SJBaseVideoPlayer/ResourceLoader (3.4.5): - Masonry - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper @@ -108,21 +108,21 @@ PODS: - SJUIKit/UIMaker (0.0.0.51): - SJUIKit/UIMaker/Core (= 0.0.0.51) - SJUIKit/UIMaker/Core (0.0.0.51) - - SJVideoPlayer (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) - - SJVideoPlayer/Common (= 3.2.8) - - SJVideoPlayer/ControlLayers (= 3.2.8) - - SJVideoPlayer/ResourceLoader (= 3.2.8) - - SJVideoPlayer/Common (3.2.8): + - SJVideoPlayer (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) + - SJVideoPlayer/Common (= 3.2.9) + - SJVideoPlayer/ControlLayers (= 3.2.9) + - SJVideoPlayer/ResourceLoader (= 3.2.9) + - SJVideoPlayer/Common (3.2.9): - Masonry - - SJBaseVideoPlayer (>= 3.4.3) + - SJBaseVideoPlayer (>= 3.4.5) - SJUIKit/AttributesFactory - SJVideoPlayer/ResourceLoader - - SJVideoPlayer/ControlLayers (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) + - SJVideoPlayer/ControlLayers (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) - SJVideoPlayer/Common - - SJVideoPlayer/ResourceLoader (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) + - SJVideoPlayer/ResourceLoader (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) - YYModel (1.0.4) DEPENDENCIES: @@ -163,15 +163,15 @@ SPEC CHECKSUMS: Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 MJRefresh: 53e3e3219f204425ee6d3e62e8733d3295944cd6 SDWebImage: 0b2ba0d56479bf6a45ecddbfd5558bea93150d25 - SJBaseVideoPlayer: 3280d44f0a6e66856563d45bc85999cdde55daa1 + SJBaseVideoPlayer: 0ecccbae3bf6cad55187113247ea88f711bef276 SJFullscreenPopGesture: 7be57b1014cb77f4b7c1e6df5e797da6d05dc75d SJMediaCacheServer: 4e9203033c21d742b6030e7704aeb61dc38840cd SJPlaybackListController: e135c789fcd63d63a62d5e2e2965ab1e6d52a2bd SJRouter: a866e7884fc9219bed523be0a0318c3a84e85022 SJUIKit: bdf86af3648e70483c57e2bfe2fcc7531337fa54 - SJVideoPlayer: 0cbef06cd6c762c4d672a664a87164ed430972dd + SJVideoPlayer: 3cccc263bc03edccedc1b2be887b903e3dfca106 YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30 -PODFILE CHECKSUM: 6267c2a571b00c2bc5ea1b3ffccbc66b168e68be +PODFILE CHECKSUM: 29e274b3a7b747f79a95901fcf2d39e60d7aef9d COCOAPODS: 1.10.0 diff --git a/Example/Pods/Local Podspecs/SJVideoPlayer.podspec.json b/Example/Pods/Local Podspecs/SJVideoPlayer.podspec.json index ee5f634af..009d8e620 100644 --- a/Example/Pods/Local Podspecs/SJVideoPlayer.podspec.json +++ b/Example/Pods/Local Podspecs/SJVideoPlayer.podspec.json @@ -1,6 +1,6 @@ { "name": "SJVideoPlayer", - "version": "3.2.8", + "version": "3.2.9", "summary": "video player.", "description": "https://github.com/changsanjiang/SJVideoPlayer/blob/master/README.md", "homepage": "https://github.com/changsanjiang/SJVideoPlayer", @@ -16,12 +16,12 @@ }, "source": { "git": "https://github.com/changsanjiang/SJVideoPlayer.git", - "tag": "v3.2.8" + "tag": "v3.2.9" }, "requires_arc": true, "dependencies": { "SJBaseVideoPlayer": [ - ">= 3.4.3" + ">= 3.4.5" ] }, "source_files": "SJVideoPlayer/*.{h,m}", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 7a44c7703..b4f44ecfa 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -7,29 +7,29 @@ PODS: - SDWebImage (5.9.5): - SDWebImage/Core (= 5.9.5) - SDWebImage/Core (5.9.5) - - SJBaseVideoPlayer (3.4.4): + - SJBaseVideoPlayer (3.4.5): - Masonry - - SJBaseVideoPlayer/AVPlayer (= 3.4.4) - - SJBaseVideoPlayer/Common (= 3.4.4) + - SJBaseVideoPlayer/AVPlayer (= 3.4.5) + - SJBaseVideoPlayer/Common (= 3.4.5) - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/AVPlayer (3.4.4): + - SJBaseVideoPlayer/AVPlayer (3.4.5): - Masonry - SJBaseVideoPlayer/Common - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/Common (3.4.4): + - SJBaseVideoPlayer/Common (3.4.5): - Masonry - SJBaseVideoPlayer/ResourceLoader - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper - SJUIKit/Queues - SJUIKit/SQLite3 - - SJBaseVideoPlayer/ResourceLoader (3.4.4): + - SJBaseVideoPlayer/ResourceLoader (3.4.5): - Masonry - SJUIKit/AttributesFactory (>= 0.0.0.38) - SJUIKit/ObserverHelper @@ -108,21 +108,21 @@ PODS: - SJUIKit/UIMaker (0.0.0.51): - SJUIKit/UIMaker/Core (= 0.0.0.51) - SJUIKit/UIMaker/Core (0.0.0.51) - - SJVideoPlayer (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) - - SJVideoPlayer/Common (= 3.2.8) - - SJVideoPlayer/ControlLayers (= 3.2.8) - - SJVideoPlayer/ResourceLoader (= 3.2.8) - - SJVideoPlayer/Common (3.2.8): + - SJVideoPlayer (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) + - SJVideoPlayer/Common (= 3.2.9) + - SJVideoPlayer/ControlLayers (= 3.2.9) + - SJVideoPlayer/ResourceLoader (= 3.2.9) + - SJVideoPlayer/Common (3.2.9): - Masonry - - SJBaseVideoPlayer (>= 3.4.3) + - SJBaseVideoPlayer (>= 3.4.5) - SJUIKit/AttributesFactory - SJVideoPlayer/ResourceLoader - - SJVideoPlayer/ControlLayers (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) + - SJVideoPlayer/ControlLayers (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) - SJVideoPlayer/Common - - SJVideoPlayer/ResourceLoader (3.2.8): - - SJBaseVideoPlayer (>= 3.4.3) + - SJVideoPlayer/ResourceLoader (3.2.9): + - SJBaseVideoPlayer (>= 3.4.5) - YYModel (1.0.4) DEPENDENCIES: @@ -163,15 +163,15 @@ SPEC CHECKSUMS: Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 MJRefresh: 53e3e3219f204425ee6d3e62e8733d3295944cd6 SDWebImage: 0b2ba0d56479bf6a45ecddbfd5558bea93150d25 - SJBaseVideoPlayer: 3280d44f0a6e66856563d45bc85999cdde55daa1 + SJBaseVideoPlayer: 0ecccbae3bf6cad55187113247ea88f711bef276 SJFullscreenPopGesture: 7be57b1014cb77f4b7c1e6df5e797da6d05dc75d SJMediaCacheServer: 4e9203033c21d742b6030e7704aeb61dc38840cd SJPlaybackListController: e135c789fcd63d63a62d5e2e2965ab1e6d52a2bd SJRouter: a866e7884fc9219bed523be0a0318c3a84e85022 SJUIKit: bdf86af3648e70483c57e2bfe2fcc7531337fa54 - SJVideoPlayer: 0cbef06cd6c762c4d672a664a87164ed430972dd + SJVideoPlayer: 3cccc263bc03edccedc1b2be887b903e3dfca106 YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30 -PODFILE CHECKSUM: 6267c2a571b00c2bc5ea1b3ffccbc66b168e68be +PODFILE CHECKSUM: 29e274b3a7b747f79a95901fcf2d39e60d7aef9d COCOAPODS: 1.10.0 diff --git a/Example/Pods/SJBaseVideoPlayer/SJBaseVideoPlayer/SJBaseVideoPlayer.m b/Example/Pods/SJBaseVideoPlayer/SJBaseVideoPlayer/SJBaseVideoPlayer.m index 6addf535e..7978429d2 100755 --- a/Example/Pods/SJBaseVideoPlayer/SJBaseVideoPlayer/SJBaseVideoPlayer.m +++ b/Example/Pods/SJBaseVideoPlayer/SJBaseVideoPlayer/SJBaseVideoPlayer.m @@ -47,6 +47,10 @@ NSTimeInterval offsetTime; ///< pan手势触发过程中的偏移量(secs) } pan; + struct { + CGFloat initialRate; + } longPress; + struct { SJPlayerGestureTypeMask disabledGestures; CGFloat rateWhenLongPressGestureTriggered; @@ -401,11 +405,12 @@ - (void)_handlePinch:(CGFloat)scale { - (void)_handleLongPress:(SJLongPressGestureRecognizerState)state { switch ( state ) { case SJLongPressGestureRecognizerStateBegan: + self.controlInfo->longPress.initialRate = self.rate; case SJLongPressGestureRecognizerStateChanged: self.rate = self.rateWhenLongPressGestureTriggered; break; case SJLongPressGestureRecognizerStateEnded: - self.rate = 1.0; + self.rate = self.controlInfo->longPress.initialRate; break; } diff --git a/Example/Pods/Target Support Files/Pods-SJVideoPlayer_Example/Pods-SJVideoPlayer_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-SJVideoPlayer_Example/Pods-SJVideoPlayer_Example-frameworks.sh new file mode 100755 index 000000000..38264b648 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-SJVideoPlayer_Example/Pods-SJVideoPlayer_Example-frameworks.sh @@ -0,0 +1,191 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AliyunPlayer.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/alivcffmpeg.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AlivcConan.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AliyunMediaDownloader.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AliyunPlayer.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/alivcffmpeg.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AlivcConan.framework" + install_framework "${PODS_ROOT}/AliPlayerSDK_iOS/AliyunMediaDownloader.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Example/SJVideoPlayer.xcworkspace/xcuserdata/bluedancer.xcuserdatad/UserInterfaceState.xcuserstate b/Example/SJVideoPlayer.xcworkspace/xcuserdata/bluedancer.xcuserdatad/UserInterfaceState.xcuserstate index de473adb7..b75ec44f4 100644 Binary files a/Example/SJVideoPlayer.xcworkspace/xcuserdata/bluedancer.xcuserdatad/UserInterfaceState.xcuserstate and b/Example/SJVideoPlayer.xcworkspace/xcuserdata/bluedancer.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliViewController3.m" "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliViewController3.m" index 0a32d1c04..37762ed50 100644 --- "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliViewController3.m" +++ "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliViewController3.m" @@ -14,8 +14,11 @@ #if __has_include() #import + #endif +#import + @interface SJTestAliViewController3 () @property (nonatomic, strong) SJVideoPlayer *player; @end @@ -33,6 +36,7 @@ - (void)viewDidLoad { SJVideoPlayerURLAsset *asset = [SJVideoPlayerURLAsset.alloc initWithSource:source]; // asset.trialEndPosition = 30; // 试看30秒 _player.URLAsset = asset; + #else // 切换为 Aliplayer, 详见: https://github.com/changsanjiang/SJVideoPlayer/wiki/Use-AliPlayer [_player.prompt show:[NSAttributedString sj_UIKitText:^(id _Nonnull make) { @@ -58,6 +62,24 @@ - (IBAction)pause:(id)sender { [_player pause]; } +- (BOOL)shouldAutorotate { + return NO; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [_player vc_viewDidAppear]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [_player vc_viewWillDisappear]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [_player vc_viewDidDisappear]; +} @end diff --git "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliVodPlayerViewController.m" "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliVodPlayerViewController.m" index 914a60f5c..e712a08af 100644 --- "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliVodPlayerViewController.m" +++ "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestAliVodPlayerViewController.m" @@ -49,6 +49,25 @@ - (void)viewDidLoad { // Do any additional setup after loading the view from its nib. } + +- (BOOL)shouldAutorotate { + return NO; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [_player vc_viewDidAppear]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [_player vc_viewWillDisappear]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [_player vc_viewDidDisappear]; +} @end diff --git "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestIJKViewController2.m" "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestIJKViewController2.m" index 406882937..5a5c9393b 100644 --- "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestIJKViewController2.m" +++ "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestIJKViewController2.m" @@ -64,6 +64,27 @@ - (IBAction)pause:(id)sender { - (IBAction)next:(id)sender { _player.URLAsset = [SJVideoPlayerURLAsset.alloc initWithURL:VideoURL_Level1]; } + + + +- (BOOL)shouldAutorotate { + return NO; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [_player vc_viewDidAppear]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [_player vc_viewWillDisappear]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [_player vc_viewDidDisappear]; +} @end #pragma mark - diff --git "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestPLPlayerViewController.m" "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestPLPlayerViewController.m" index 21c893a5e..981bfc3eb 100644 --- "a/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestPLPlayerViewController.m" +++ "b/Example/SJVideoPlayer/Demos/\347\254\254\344\270\211\346\226\271\346\222\255\346\224\276\345\231\250/SJTestPLPlayerViewController.m" @@ -45,6 +45,25 @@ - (void)viewDidLoad { #endif } + +- (BOOL)shouldAutorotate { + return NO; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [_player vc_viewDidAppear]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [_player vc_viewWillDisappear]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [_player vc_viewDidDisappear]; +} @end #pragma mark - diff --git a/SJVideoPlayer.podspec b/SJVideoPlayer.podspec index f98a4ed14..a498b9b5c 100644 --- a/SJVideoPlayer.podspec +++ b/SJVideoPlayer.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'SJVideoPlayer' - s.version = '3.2.8' + s.version = '3.2.9' s.summary = 'video player.' s.description = 'https://github.com/changsanjiang/SJVideoPlayer/blob/master/README.md' s.homepage = 'https://github.com/changsanjiang/SJVideoPlayer' @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.platform = :ios, '8.0' s.source = { :git => 'https://github.com/changsanjiang/SJVideoPlayer.git', :tag => "v#{s.version}" } s.requires_arc = true - s.dependency 'SJBaseVideoPlayer', '>= 3.4.3' + s.dependency 'SJBaseVideoPlayer', '>= 3.4.5' s.source_files = 'SJVideoPlayer/*.{h,m}' diff --git a/SJVideoPlayer/SJVideoPlayer.m b/SJVideoPlayer/SJVideoPlayer.m index ea95eddc3..577531d95 100644 --- a/SJVideoPlayer/SJVideoPlayer.m +++ b/SJVideoPlayer/SJVideoPlayer.m @@ -290,6 +290,7 @@ - (SJVideoDefinitionSwitchingInfoObserver *)sj_switchingInfoObserver { } break; } + [self _updateContentForDefinitionButtonItemIfNeeded]; }; } return _sj_switchingInfoObserver;