// // AMediaStream.h // all // // Created by admin on 2024/3/14. // #ifndef AMediaStream_h #define AMediaStream_h #import #import #import #import #import RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE(MediaStreamClientEventsDelegate) - (void)dataChannelDidChangeFromPeerName:(NSString*)peerName State:(RTCDataChannelState)state; -(void)onChannelDataFromPeerName:(NSString*)peerName buffer:(RTC_OBJC_TYPE(RTCDataBuffer) *)buffer; -(void)onChangeConnectionStateFromPeerName:(NSString*)peerName didChangeIceConnectionState:(RTCIceConnectionState)state; -(void)onFrameResolutionChangedFromPeerName:(NSString*)peerName videoWidth:(int)videoWidth videoHeight:(int)videoHeight rotation:(int)rotation; -(void)didGetStats:(NSString*)peerName stats:(RTC_OBJC_TYPE(RTCStatisticsReport) *)stats; //code 0 成功 1失败 -(void)onAuthResultFromPeerName:(NSString*)peerName code:(int)code descriptions:(NSString*)descriptions; -(void)onFirstFrameRendered:(NSString*)peerName; @optional - (void)connectionChange:(NSString*)peerName didChangeLocalCandidate:(RTC_OBJC_TYPE(RTCIceCandidate) *)local remoteCandidate:(RTC_OBJC_TYPE(RTCIceCandidate) *)remote lastReceivedMs:(int)lastDataReceivedMs changeReason:(NSString *)reason; @end RTC_OBJC_EXPORT @interface RTC_OBJC_TYPE(AMediaStream) : UIView +(void)globalInitialization; +(void)globalDeinitialization; +(NSString*)getSdkVersion; -(instancetype)initWithFrame:(CGRect)frame; //start 拉流前调用设置软硬编码,YES硬编码,NO软编码,不调用默认硬编码 -(void)setVideoCodecHwAcceleration:(BOOL)videoCodecHwAcceleration; //start 拉流前调用设置本次拉流记录推流端日志到指定文件与记录时间 秒 单位。 //filePathName = /sdcard/webrtc_box.log captureTime = 30s -(void)setCardLogToFile:(NSString*)filePathName captureTime:(NSString*)captureTime; //NSDictionary *iceMessage=@{ // @"CHINANET":@"电信", // @"CMNET":@"移动", // @"UNICOM":@"联通" //}; -(int)start:(NSURL *)url ice:(NSDictionary*)ice sn:(NSString*)sn direct:(NSInteger)direct fmt:(NSInteger)fmt videoWidth:(NSInteger)videoWidth videoHeight:(NSInteger)videoHeight fps:(NSInteger)fps bitrate:(NSInteger)bitrate cardWidth:(NSInteger)cardWidth cardHeight:(NSInteger)cardHeight cardDensity:(NSInteger)cardDensity token:(NSString*)token; - (int)startUploadChannel:(NSURL *)url ice:(NSDictionary*)ice sn:(NSString*)sn token:(NSString*)token; - (void)disconnect; - (BOOL)sendData:(NSString*)strData; - (BOOL)sendBinary:(NSData*)data; - (BOOL)sendKey:(int)value; - (BOOL)pauseStream; - (BOOL)resumeStream; - (BOOL)setAudioEnable:(BOOL)enable; - (BOOL)setMaxBitrate:(NSNumber*)rate; - (BOOL)setAutoBitrateEnabled:(BOOL)enable bitrate:(NSNumber*)bitrate; - (void)setShouldGetStats:(BOOL)shouldGetStats; - (void)setVideoContentMode:(UIViewContentMode)mode; - (BOOL)setCardSize:(NSInteger)cardWidth cardHeight:(NSInteger)cardHeight cardDensity:(NSInteger)cardDensity; - (BOOL)setVideoSize:(NSInteger)videoWidth videoHeight:(NSInteger)videoHeight frameRate:(NSInteger)frameRate; - (void)enterBackground; - (void)enterForeground; @property (nonatomic, weak) id eventDelegate; @property(nonatomic,readonly) NSString *name; @property(nonatomic, assign) BOOL shouldGetStats; @end #endif