SampleHandler.m 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // SampleHandler.m
  3. // TXReplayKit_Screen
  4. //
  5. // Created by WesleyLei on 2022/1/13.
  6. // Copyright © 2022 Tencent. All rights reserved.
  7. //
  8. #import "SampleHandler.h"
  9. #import "ReplayKitLocalized.h"
  10. @import TXLiteAVSDK_ReplayKitExt;
  11. #define APPGROUP @"com.tencent.TUIRoomTXReplayKit-Screen"
  12. @protocol TXReplayKitExtDelegate;
  13. @interface SampleHandler()
  14. @end
  15. @implementation SampleHandler
  16. - (void)broadcastStartedWithSetupInfo:(NSDictionary<NSString *,NSObject *> *)setupInfo {
  17. [[TXReplayKitExt sharedInstance] setupWithAppGroup:APPGROUP delegate:self];
  18. }
  19. - (void)broadcastPaused {
  20. // User has requested to pause the broadcast. Samples will stop being delivered.
  21. }
  22. - (void)broadcastResumed {
  23. // User has requested to resume the broadcast. Samples delivery will resume.
  24. }
  25. - (void)broadcastFinished {
  26. [[TXReplayKitExt sharedInstance] broadcastFinished];
  27. // User has requested to finish the broadcast.
  28. }
  29. #pragma mark - TXReplayKitExtDelegate
  30. - (void)broadcastFinished:(TXReplayKitExt *)broadcast reason:(TXReplayKitExtReason)reason
  31. {
  32. NSString *tip = @"";
  33. switch (reason) {
  34. case TXReplayKitExtReasonRequestedByMain:
  35. tip = replayKitLocalize(@"TUIRoom.ScreenAnchor.liveStop");
  36. break;
  37. case TXReplayKitExtReasonDisconnected:
  38. tip = replayKitLocalize(@"TUIRoom.ScreenAnchor.appReset");
  39. break;
  40. case TXReplayKitExtReasonVersionMismatch:
  41. tip = replayKitLocalize(@"TUIRoom.ScreenAnchor.sdkError");
  42. break;
  43. }
  44. if (reason == TXReplayKitExtReasonRequestedByMain) {
  45. [self finishBroadcastWithError:nil];
  46. }else {
  47. NSError *error = [NSError errorWithDomain:NSStringFromClass(self.class)
  48. code:0
  49. userInfo:@{
  50. NSLocalizedFailureReasonErrorKey:tip
  51. }];
  52. [self finishBroadcastWithError:error];
  53. }
  54. }
  55. - (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
  56. [[TXReplayKitExt sharedInstance] sendSampleBuffer:sampleBuffer withType:sampleBufferType];
  57. }
  58. @end