AMediaStream.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // AMediaStream.h
  3. // all
  4. //
  5. // Created by admin on 2024/3/14.
  6. //
  7. #ifndef AMediaStream_h
  8. #define AMediaStream_h
  9. #import <Foundation/Foundation.h>
  10. #import <WebRTC/RTCPeerConnection.h>
  11. #import <WebRTC/RTCDataChannel.h>
  12. #import <WebRTC/RTCStatisticsReport.h>
  13. #import <WebRTC/RTCVideoRenderer.h>
  14. RTC_OBJC_EXPORT
  15. @protocol RTC_OBJC_TYPE(MediaStreamClientEventsDelegate) <NSObject>
  16. - (void)dataChannelDidChangeFromPeerName:(NSString*)peerName State:(RTCDataChannelState)state;
  17. -(void)onChannelDataFromPeerName:(NSString*)peerName buffer:(RTC_OBJC_TYPE(RTCDataBuffer) *)buffer;
  18. -(void)onChangeConnectionStateFromPeerName:(NSString*)peerName didChangeIceConnectionState:(RTCIceConnectionState)state;
  19. -(void)onFrameResolutionChangedFromPeerName:(NSString*)peerName videoWidth:(int)videoWidth videoHeight:(int)videoHeight rotation:(int)rotation;
  20. -(void)didGetStats:(NSString*)peerName stats:(RTC_OBJC_TYPE(RTCStatisticsReport) *)stats;
  21. //code 0 成功 1失败
  22. -(void)onAuthResultFromPeerName:(NSString*)peerName code:(int)code descriptions:(NSString*)descriptions;
  23. -(void)onFirstFrameRendered:(NSString*)peerName;
  24. @optional
  25. - (void)connectionChange:(NSString*)peerName
  26. didChangeLocalCandidate:(RTC_OBJC_TYPE(RTCIceCandidate) *)local
  27. remoteCandidate:(RTC_OBJC_TYPE(RTCIceCandidate) *)remote
  28. lastReceivedMs:(int)lastDataReceivedMs
  29. changeReason:(NSString *)reason;
  30. @end
  31. RTC_OBJC_EXPORT
  32. @interface RTC_OBJC_TYPE(AMediaStream) : UIView
  33. +(void)globalInitialization;
  34. +(void)globalDeinitialization;
  35. +(NSString*)getSdkVersion;
  36. -(instancetype)initWithFrame:(CGRect)frame;
  37. //start 拉流前调用设置软硬编码,YES硬编码,NO软编码,不调用默认硬编码
  38. -(void)setVideoCodecHwAcceleration:(BOOL)videoCodecHwAcceleration;
  39. //start 拉流前调用设置本次拉流记录推流端日志到指定文件与记录时间 秒 单位。
  40. //filePathName = /sdcard/webrtc_box.log captureTime = 30s
  41. -(void)setCardLogToFile:(NSString*)filePathName captureTime:(NSString*)captureTime;
  42. //NSDictionary *iceMessage=@{
  43. // @"CHINANET":@"电信",
  44. // @"CMNET":@"移动",
  45. // @"UNICOM":@"联通"
  46. //};
  47. -(int)start:(NSURL *)url
  48. ice:(NSDictionary*)ice
  49. sn:(NSString*)sn
  50. direct:(NSInteger)direct
  51. fmt:(NSInteger)fmt
  52. videoWidth:(NSInteger)videoWidth
  53. videoHeight:(NSInteger)videoHeight
  54. fps:(NSInteger)fps
  55. bitrate:(NSInteger)bitrate
  56. cardWidth:(NSInteger)cardWidth
  57. cardHeight:(NSInteger)cardHeight
  58. cardDensity:(NSInteger)cardDensity
  59. token:(NSString*)token;
  60. - (int)startUploadChannel:(NSURL *)url
  61. ice:(NSDictionary*)ice
  62. sn:(NSString*)sn
  63. token:(NSString*)token;
  64. - (void)disconnect;
  65. - (BOOL)sendData:(NSString*)strData;
  66. - (BOOL)sendBinary:(NSData*)data;
  67. - (BOOL)sendKey:(int)value;
  68. - (BOOL)pauseStream;
  69. - (BOOL)resumeStream;
  70. - (BOOL)setAudioEnable:(BOOL)enable;
  71. - (BOOL)setMaxBitrate:(NSNumber*)rate;
  72. - (BOOL)setAutoBitrateEnabled:(BOOL)enable bitrate:(NSNumber*)bitrate;
  73. - (void)setShouldGetStats:(BOOL)shouldGetStats;
  74. - (void)setVideoContentMode:(UIViewContentMode)mode;
  75. - (BOOL)setCardSize:(NSInteger)cardWidth
  76. cardHeight:(NSInteger)cardHeight
  77. cardDensity:(NSInteger)cardDensity;
  78. - (BOOL)setVideoSize:(NSInteger)videoWidth
  79. videoHeight:(NSInteger)videoHeight
  80. frameRate:(NSInteger)frameRate;
  81. - (void)enterBackground;
  82. - (void)enterForeground;
  83. @property (nonatomic, weak) id <MediaStreamClientEventsDelegate> eventDelegate;
  84. @property(nonatomic,readonly) NSString *name;
  85. @property(nonatomic, assign) BOOL shouldGetStats;
  86. @end
  87. #endif