VideoManager+http.m 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // VideoManager+http.m
  3. // SikeyComm
  4. //
  5. // Created by 刘振兴 on 2025/2/18.
  6. // Copyright © 2025 BaH Cy. All rights reserved.
  7. //
  8. #import "VideoManager+http.h"
  9. @implementation VideoManager (http)
  10. - (void)requestToken:(NSString*)uid ticket:(NSString*)ticket callback:(void(^)(BOOL isOK, NSString* token))callback {
  11. HDNormalLog(([NSString stringWithFormat:@"VideoManager: requestToken ticket:%@", ticket]));
  12. NSDictionary* serviceRtc = @{
  13. @"enable" : @(YES),
  14. @"role" : @(1),
  15. };
  16. NSDictionary *param = @{
  17. @"uid":@"0",
  18. @"channelName":self.roomId,
  19. @"tokenExpireTs": @(3600),
  20. @"privilegeExpireTs": @(3600),
  21. @"serviceRtc" : serviceRtc,
  22. };
  23. [ERequest httpRequest:param httpURL:URL_VIDEO_TOKEN httpMethod:@"POST" onSuccess:^(NSDictionary *result) {
  24. if ([ERequest isSuccessWithResult:result]) {
  25. callback(YES, result[@"data"][@"data"][@"token"]);
  26. } else {
  27. [EasyTextView showErrorText:result[@"message"]];
  28. callback(NO, @"");
  29. }
  30. } onFailure:^(NSError *error) {
  31. [EasyTextView showErrorText:NSLocalizedString(@"Network.Error", nil)];
  32. callback(NO, @"");
  33. }];
  34. }
  35. - (void)requestVideo:(NSString*)uid ticket:(NSString*)ticket dial:(NSInteger)dial callback:(void(^)(BOOL isOK, NSString* token))callback {
  36. HDNormalLog(([NSString stringWithFormat:@"VideoManager: requestVideo ticket:%@ dial:%ld", ticket, dial]));
  37. DeviceModel* model = [[DataManager shared] getDeviceWithTicket:ticket];
  38. if (dial > 0) {
  39. if (model.videoCallChannel == VIDEO_TYPE_AGORA) {
  40. [self requestToken:uid ticket:ticket callback:^(BOOL isOK, NSString *token) {
  41. if (isOK && token.length > 0) {
  42. [self requestVideoEx:uid ticket:ticket token:token dial:dial callback:^(BOOL isOK) {
  43. callback(isOK, token);
  44. }];
  45. }
  46. }];
  47. }
  48. } else {
  49. [self requestVideoEx:uid ticket:ticket token:@"" dial:dial callback:^(BOOL isOK) {
  50. callback(isOK, @"");
  51. }];
  52. }
  53. }
  54. - (void)requestVideoEx:(NSString*)uid ticket:(NSString*)ticket token:(NSString*)token dial:(NSInteger)dial callback:(void(^)(BOOL isOK))callback {
  55. HDNormalLog(([NSString stringWithFormat:@"VideoManager: requestVideoEx ticket:%@ dial:%ld token:%@", ticket, dial, token]));
  56. NSDictionary *param = @{
  57. @"sid":uid,
  58. @"roomId": self.roomId,
  59. @"videoCallToken":token,
  60. @"dial":@(dial), //是否是拨号 -1 挂断 1 拨号
  61. };
  62. NSString* url = dial == 1? URL_VIDEO_DIAL : URL_VIDEO_HANGUP;
  63. [ERequest httpRequest:param httpURL:url httpMethod:@"GET" onSuccess:^(NSDictionary *result) {
  64. if ([ERequest isSuccessWithResult:result]) {
  65. callback(YES);
  66. } else {
  67. [EasyTextView showErrorText:result[@"message"]];
  68. callback(NO);
  69. }
  70. } onFailure:^(NSError *error) {
  71. [EasyTextView showErrorText:NSLocalizedString(@"Network.Error", nil)];
  72. callback(NO);
  73. }];
  74. }
  75. @end