FlutterIjkManager.m 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // Created by Caijinglong on 2019-03-08.
  3. //
  4. #import "FlutterIjkManager.h"
  5. #import "FlutterIJK.h"
  6. #import <IJKMediaFramework/IJKMediaFramework.h>
  7. @implementation FlutterIjkManager {
  8. NSMutableDictionary<NSNumber *, FlutterIJK * > *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. FlutterIJK *ijk = [FlutterIJK ijkWithRegistrar:self.registrar];
  23. NSNumber *number = @([ijk id]);
  24. dict[number] = ijk;
  25. return [ijk id];
  26. }
  27. - (FlutterIJK *)findIJKWithId:(int64_t)id {
  28. return dict[@(id)];
  29. }
  30. - (void)disposeWithId:(int64_t)id {
  31. FlutterIJK *ijk = dict[@(id)];
  32. if (ijk) {
  33. [ijk dispose];
  34. [dict removeObjectForKey:@(id)];
  35. }
  36. }
  37. @end