CoolFlutterIjkManager.m 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // Created by Caijinglong on 2019-03-08.
  3. //
  4. #import "CoolFlutterIjkManager.h"
  5. #import "CoolFlutterIJK.h"
  6. #import <IJKMediaFramework/IJKMediaFramework.h>
  7. @implementation CoolFlutterIjkManager {
  8. NSMutableDictionary<NSNumber *, CoolFlutterIJK *> *dict;
  9. }
  10. - (instancetype)initWithRegistrar:(NSObject <FlutterPluginRegistrar> *)registrar {
  11. self = [super init];
  12. if (self) {
  13. self.registrar = registrar;
  14. dict = [NSMutableDictionary new];
  15. }
  16. return self;
  17. }
  18. + (instancetype)managerWithRegistrar:(NSObject <FlutterPluginRegistrar> *)registrar {
  19. return [[self alloc] initWithRegistrar:registrar];
  20. }
  21. - (int64_t)create {
  22. CoolFlutterIJK *ijk = [CoolFlutterIJK ijkWithRegistrar:self.registrar];
  23. NSNumber *number = @([ijk id]);
  24. dict[number] = ijk;
  25. return [ijk id];
  26. }
  27. - (CoolFlutterIJK *)findIJKWithId:(int64_t)id {
  28. return dict[@(id)];
  29. }
  30. - (int)ijkCount{
  31. if(!dict){
  32. return 0;
  33. }
  34. return [dict count];
  35. }
  36. - (void)disposeWithId:(int64_t)id {
  37. CoolFlutterIJK *ijk = dict[@(id)];
  38. if (ijk) {
  39. [ijk dispose];
  40. [dict removeObjectForKey:@(id)];
  41. }
  42. }
  43. - (void)disposeAll {
  44. NSArray<NSNumber *> *keys = dict.allKeys;
  45. for (NSNumber *key in keys) {
  46. CoolFlutterIJK *ijk = dict[key];
  47. [dict removeObjectForKey:key];
  48. [ijk dispose];
  49. }
  50. }
  51. @end