1 // Copyright 2017-present 650 Industries. All rights reserved. 2 3 #import <AVFoundation/AVFoundation.h> 4 5 #import <EXAV/EXAV.h> 6 #import <EXAV/EXAudioSampleCallback.h> 7 8 @interface EXAVPlayerData : NSObject <EXAVObject> 9 10 @property (nonatomic, strong) AVQueuePlayer *player; 11 @property (nonatomic, strong) NSURL *url; 12 @property (nonatomic, strong) NSDictionary *headers; 13 @property (nonatomic, strong) EXAudioSampleCallback *sampleBufferCallback; 14 @property (nonatomic, strong) void (^statusUpdateCallback)(NSDictionary *); 15 @property (nonatomic, strong) void (^metadataUpdateCallback)(NSDictionary *); 16 @property (nonatomic, strong) void (^errorCallback)(NSString *); 17 18 + (NSDictionary *)getUnloadedStatus; 19 20 - (instancetype)initWithEXAV:(EXAV *)exAV 21 withSource:(NSDictionary *)source 22 withStatus:(NSDictionary *)parameters 23 withLoadFinishBlock:(void (^)(BOOL success, NSDictionary *successStatus, NSString *error))loadFinishBlock; 24 25 - (void)setStatus:(NSDictionary *)parameters 26 resolver:(EXPromiseResolveBlock)resolve 27 rejecter:(EXPromiseRejectBlock)reject; 28 29 - (NSDictionary *)getStatus; 30 31 - (void)replayWithStatus:(NSDictionary *)status 32 resolver:(EXPromiseResolveBlock)resolve 33 rejecter:(EXPromiseRejectBlock)reject; 34 35 - (void)cleanup; 36 37 @end 38