Explorar o código

版本升级维护

yyqxiaoyin %!s(int64=5) %!d(string=hai) anos
pai
achega
ab2ad8ab2a

+ 2 - 1
MKRRadioManager/Classes/MKRRadioManager/MKRAVPlayer/MKRAVPlayer.h

@@ -56,8 +56,9 @@ typedef enum : NSUInteger {
 /**
  播放完成 即将按照播放模式开始播放下一首
  返回值为YES 将自动按照播放模式开始播放下一首
+ @param nextIndex 下一首的下标
  */
-- (BOOL)didFinishPlayWillAutoNext;
+- (BOOL)didFinishPlayWillAutoNext:(NSInteger)nextIndex;
 
 /**
  播放完成

+ 25 - 2
MKRRadioManager/Classes/MKRRadioManager/MKRAVPlayer/MKRAVPlayer.m

@@ -167,6 +167,28 @@ NSURL * MKRUrlWithString(NSString *string){
     }
 }
 
+- (NSInteger)_caculateNextIndex:(NSInteger)currentIndex{
+    switch (_playMode) {
+        case MKRAVPlayerPlayModeRandom:{
+            return [self ramdomIndex];
+        }
+            break;
+        case MKRAVPlayerPlayModeSingle:{
+            return currentIndex;
+        }
+            break;
+        case MKRAVPlayerPlayModeOrder:
+        default:{
+            NSInteger index = currentIndex + 1;
+            if (index > self.playList.count - 1) {
+                index = 0;
+            }
+            return index;
+        }
+            break;
+    }
+}
+
 - (void)next{
     if (_playMode == MKRAVPlayerPlayModeRandom) {
         [self nextWhenPlayDidEnd];
@@ -347,8 +369,9 @@ NSURL * MKRUrlWithString(NSString *string){
     self.seekTime = 0.0f;
     self.isSeeking = NO;
     BOOL shouldAutoNext = YES;
-    if (self.delegate && [self.delegate respondsToSelector:@selector(didFinishPlayWillAutoNext)]) {
-        shouldAutoNext = [self.delegate didFinishPlayWillAutoNext];
+    if (self.delegate && [self.delegate respondsToSelector:@selector(didFinishPlayWillAutoNext:)]) {
+        NSInteger nextIndex = [self _caculateNextIndex:self.currentIndex];
+        shouldAutoNext = [self.delegate didFinishPlayWillAutoNext:nextIndex];
     }
     if (shouldAutoNext) {
         [self nextWhenPlayDidEnd];