Browse Source

Merge pull request #84 from Tencent/feature/ios_pause

Feature/ios pause
Cass 5 years ago
parent
commit
842870c853

+ 1 - 1
QGVAPlayer.podspec

@@ -16,7 +16,7 @@ Pod::Spec.new do |spec|
   #
   #
 
 
   spec.name         = "QGVAPlayer"
   spec.name         = "QGVAPlayer"
-  spec.version      = "1.0.7"
+  spec.version      = "1.0.8"
   spec.summary      = "video animation player."
   spec.summary      = "video animation player."
   spec.platform     = :ios, "8.0"
   spec.platform     = :ios, "8.0"
 
 

+ 2 - 0
iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.h

@@ -50,6 +50,8 @@
 - (void)playHWDMP4:(NSString *)filePath repeatCount:(NSInteger)repeatCount delegate:(id<HWDMP4PlayDelegate>)delegate;
 - (void)playHWDMP4:(NSString *)filePath repeatCount:(NSInteger)repeatCount delegate:(id<HWDMP4PlayDelegate>)delegate;
 
 
 - (void)stopHWDMP4;
 - (void)stopHWDMP4;
+
+/// 注意,一旦退后台就会强制stop,退回前台后再resume无效
 - (void)pauseHWDMP4;
 - (void)pauseHWDMP4;
 - (void)resumeHWDMP4;
 - (void)resumeHWDMP4;
 
 

+ 5 - 1
iOS/QGVAPlayer/QGVAPlayer/Classes/UIView+VAP.m

@@ -349,9 +349,13 @@ NSInteger const VapMaxCompatibleVersion = 2;
         //不能将self.hwd_onPause判断加到while语句中!会导致releasepool不断上涨
         //不能将self.hwd_onPause判断加到while语句中!会导致releasepool不断上涨
         while (YES) {
         while (YES) {
             @autoreleasepool {
             @autoreleasepool {
-                if (self.hwd_onPause || self.hwd_isFinish) {
+                if (self.hwd_isFinish) {
                     break ;
                     break ;
                 }
                 }
+                if (self.hwd_onPause) {
+                    lastRenderingInterval = NSDate.timeIntervalSinceReferenceDate;
+                    continue;
+                }
                 __block QGMP4AnimatedImageFrame *nextFrame = nil;
                 __block QGMP4AnimatedImageFrame *nextFrame = nil;
                 dispatch_sync(dispatch_get_main_queue(), ^{
                 dispatch_sync(dispatch_get_main_queue(), ^{
                     nextFrame = [self hwd_displayNext];
                     nextFrame = [self hwd_displayNext];