Playlists, looping, shuffling for iOS
This commit is contained in:
parent
c0c5d0c2bf
commit
a63ef2ba39
44 changed files with 1629 additions and 362 deletions
|
@ -14,3 +14,9 @@ enum PlaybackState {
|
|||
connecting,
|
||||
completed
|
||||
};
|
||||
|
||||
enum LoopMode {
|
||||
loopOff,
|
||||
loopOne,
|
||||
loopAll
|
||||
};
|
||||
|
|
13
ios/Classes/AudioSource.h
Normal file
13
ios/Classes/AudioSource.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
#import <Flutter/Flutter.h>
|
||||
|
||||
@interface AudioSource : NSObject
|
||||
|
||||
@property (readonly, nonatomic) NSString* sourceId;
|
||||
|
||||
- (instancetype)initWithId:(NSString *)sid;
|
||||
- (int)buildSequence:(NSMutableArray *)sequence treeIndex:(int)treeIndex;
|
||||
- (void)findById:(NSString *)sourceId matches:(NSMutableArray<AudioSource *> *)matches;
|
||||
- (NSArray *)getShuffleOrder;
|
||||
- (int)shuffle:(int)treeIndex currentIndex:(int)currentIndex;
|
||||
|
||||
@end
|
1
ios/Classes/AudioSource.m
Symbolic link
1
ios/Classes/AudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/AudioSource.m
|
9
ios/Classes/ClippingAudioSource.h
Normal file
9
ios/Classes/ClippingAudioSource.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#import "AudioSource.h"
|
||||
#import "UriAudioSource.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
|
||||
@interface ClippingAudioSource : IndexedAudioSource
|
||||
|
||||
- (instancetype)initWithId:(NSString *)sid audioSource:(UriAudioSource *)audioSource start:(NSNumber *)start end:(NSNumber *)end;
|
||||
|
||||
@end
|
1
ios/Classes/ClippingAudioSource.m
Symbolic link
1
ios/Classes/ClippingAudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/ClippingAudioSource.m
|
13
ios/Classes/ConcatenatingAudioSource.h
Normal file
13
ios/Classes/ConcatenatingAudioSource.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
#import "AudioSource.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
|
||||
@interface ConcatenatingAudioSource : AudioSource
|
||||
|
||||
@property (readonly, nonatomic) int count;
|
||||
|
||||
- (instancetype)initWithId:(NSString *)sid audioSources:(NSMutableArray<AudioSource *> *)audioSources;
|
||||
- (void)insertSource:(AudioSource *)audioSource atIndex:(int)index;
|
||||
- (void)removeSourcesFromIndex:(int)start toIndex:(int)end;
|
||||
- (void)moveSourceFromIndex:(int)currentIndex toIndex:(int)newIndex;
|
||||
|
||||
@end
|
1
ios/Classes/ConcatenatingAudioSource.m
Symbolic link
1
ios/Classes/ConcatenatingAudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/ConcatenatingAudioSource.m
|
20
ios/Classes/IndexedAudioSource.h
Normal file
20
ios/Classes/IndexedAudioSource.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#import "AudioSource.h"
|
||||
#import "IndexedPlayerItem.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
@interface IndexedAudioSource : AudioSource
|
||||
|
||||
@property (readonly, nonatomic) IndexedPlayerItem *playerItem;
|
||||
@property (readwrite, nonatomic) CMTime duration;
|
||||
@property (readonly, nonatomic) CMTime position;
|
||||
@property (readonly, nonatomic) BOOL isAttached;
|
||||
|
||||
- (void)attach:(AVQueuePlayer *)player;
|
||||
- (void)play:(AVQueuePlayer *)player;
|
||||
- (void)pause:(AVQueuePlayer *)player;
|
||||
- (void)stop:(AVQueuePlayer *)player;
|
||||
- (void)seek:(CMTime)position;
|
||||
- (void)seek:(CMTime)position completionHandler:(void (^)(BOOL))completionHandler;
|
||||
|
||||
@end
|
1
ios/Classes/IndexedAudioSource.m
Symbolic link
1
ios/Classes/IndexedAudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/IndexedAudioSource.m
|
9
ios/Classes/IndexedPlayerItem.h
Normal file
9
ios/Classes/IndexedPlayerItem.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
@class IndexedAudioSource;
|
||||
|
||||
@interface IndexedPlayerItem : AVPlayerItem
|
||||
|
||||
@property (readwrite, nonatomic) IndexedAudioSource *audioSource;
|
||||
|
||||
@end
|
1
ios/Classes/IndexedPlayerItem.m
Symbolic link
1
ios/Classes/IndexedPlayerItem.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/IndexedPlayerItem.m
|
8
ios/Classes/LoopingAudioSource.h
Normal file
8
ios/Classes/LoopingAudioSource.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#import "AudioSource.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
|
||||
@interface LoopingAudioSource : AudioSource
|
||||
|
||||
- (instancetype)initWithId:(NSString *)sid audioSources:(NSArray<AudioSource *> *)audioSources;
|
||||
|
||||
@end
|
1
ios/Classes/LoopingAudioSource.m
Symbolic link
1
ios/Classes/LoopingAudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/LoopingAudioSource.m
|
8
ios/Classes/UriAudioSource.h
Normal file
8
ios/Classes/UriAudioSource.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#import "IndexedAudioSource.h"
|
||||
#import <Flutter/Flutter.h>
|
||||
|
||||
@interface UriAudioSource : IndexedAudioSource
|
||||
|
||||
- (instancetype)initWithId:(NSString *)sid uri:(NSString *)uri;
|
||||
|
||||
@end
|
1
ios/Classes/UriAudioSource.m
Symbolic link
1
ios/Classes/UriAudioSource.m
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../darwin/Classes/UriAudioSource.m
|
Loading…
Add table
Add a link
Reference in a new issue