QNRTCConfiguration.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. //
  2. // QNRTCConfiguration.h
  3. // QNRTCKit
  4. //
  5. // Created by lawder on 2019/4/10.
  6. // Copyright © 2019 Pili Engineering, Qiniu Inc. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "QNTypeDefines.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. /*!
  12. * @abstract 用来配置 RTC 的相关信息
  13. *
  14. * @since v4.0.0
  15. */
  16. @interface QNRTCConfiguration : NSObject <NSCopying>
  17. /*!
  18. * @abstract 媒体流的连接方式,默认为 QNRTCPolicyForceUDP
  19. *
  20. * @since v4.0.0
  21. */
  22. @property (nonatomic, assign, readonly) QNRTCPolicy policy;
  23. /*!
  24. * @abstract 固定分辨率,默认为 NO
  25. *
  26. * @since v5.2.0
  27. */
  28. @property (nonatomic, assign, readonly) BOOL maintainResolutionEnabled __deprecated_msg("Method deprecated in v5.2.3. Use `QNDegradationPreference`");
  29. /*!
  30. * @abstract 是否使用通话模式,默认为 YES
  31. *
  32. * @warning 使用声卡并配戴耳机的情况下,建议关闭该配置,可解决声卡模式不匹配带来的音频异常无效等问题
  33. * 关闭该模式将直接关闭硬件回声消除,不佩戴耳机的情况下连麦,可能出现回声
  34. *
  35. * @since v5.2.0
  36. */
  37. @property (nonatomic, assign, readonly) BOOL communicationModeOn __deprecated_msg("Method deprecated in v5.2.3. Use `initWithPolicy:`");
  38. /*!
  39. * @abstract 音频场景,默认为 QNAudioSceneDefault
  40. *
  41. * @warning 可通过 QNRTC 调用 setAudioScene 动态设置
  42. *
  43. * @since v5.2.3
  44. */
  45. @property (nonatomic, assign, readonly) QNAudioScene audioScene;
  46. /*!
  47. * @abstract SDK 与七牛服务器由于网络原因断开后,内部尝试重连的超时时间,单位: ms,默认 30s
  48. *
  49. * @warning 建议在重连超时收到 QNRTCErrorNetworkTimeout 后做新的业务处理
  50. *
  51. * @since v5.2.4
  52. */
  53. @property (nonatomic, assign, readonly) int reconnectionTimeout;
  54. /*!
  55. * @abstract 设置编码器类型,默认使用 QNVideoEncoderToolboxH264
  56. *
  57. *
  58. * @since v5.2.4
  59. */
  60. @property (nonatomic, assign, readonly) QNVideoEncoderType encoderType;
  61. /*!
  62. * @abstract 预设登录服务器域名
  63. *
  64. * @warning 当设置 mcuDomain 自定义域名,默认优先访问自定义域名,自定义域名访问异常时,内部会自动会切到默认域名进行访问
  65. *
  66. * @since v5.2.5
  67. */
  68. @property (nonatomic, strong) NSArray* mcuDomains;
  69. /*!
  70. * @abstract 用默认参数生成一个对象
  71. *
  72. * @since v4.0.0
  73. */
  74. + (instancetype)defaultConfiguration;
  75. /*!
  76. * @abstract 用指定的 policy 生成一个对象
  77. *
  78. * @since v4.0.0
  79. */
  80. - (instancetype)initWithPolicy:(QNRTCPolicy)policy;
  81. /*!
  82. * @abstract 用指定的 policy 、maintainResolutionEnabled 生成一个对象
  83. *
  84. * @since v5.2.0
  85. */
  86. - (instancetype)initWithPolicy:(QNRTCPolicy)policy maintainResolutionEnabled:(BOOL)maintainResolutionEnabled __deprecated_msg("Method deprecated in v5.2.3. Use `initWithPolicy:`");
  87. /*!
  88. * @abstract 用指定的 policy 、maintainResolutionEnabled、communicationModeOn 生成一个对象
  89. *
  90. * @since v5.2.0
  91. */
  92. - (instancetype)initWithPolicy:(QNRTCPolicy)policy maintainResolutionEnabled:(BOOL)maintainResolutionEnabled
  93. communicationModeOn:(BOOL)communicationModeOn __deprecated_msg("Method deprecated in v5.2.3. Use `initWithPolicy:`");
  94. /*!
  95. * @abstract 用指定的 policy 、audioScene 生成一个对象
  96. *
  97. * @since v5.2.3
  98. */
  99. - (instancetype)initWithPolicy:(QNRTCPolicy)policy audioScene:(QNAudioScene)audioScene;
  100. /*!
  101. * @abstract 用指定的 policy 、audioScene 、reconnectionTimeout 生成一个对象
  102. *
  103. * @param policy 用指定的连接方式
  104. * @param audioScene 场景
  105. * @param reconnectionTimeout 重连超时间单位(ms)
  106. * @since v5.2.4
  107. */
  108. - (instancetype)initWithPolicy:(QNRTCPolicy)policy audioScene:(QNAudioScene)audioScene reconnectionTimeout:(int)reconnectionTimeout;
  109. /*!
  110. * @abstract 用指定的 policy 、audioScene 、reconnectionTimeout 、encoderType生成一个对象
  111. *
  112. * @param policy 用指定的连接方式
  113. * @param audioScene 场景
  114. * @param reconnectionTimeout 重连超时间单位(ms)
  115. * @param encoderType 视频编码类型
  116. * @since v5.2.4
  117. */
  118. - (instancetype)initWithPolicy:(QNRTCPolicy)policy audioScene:(QNAudioScene)audioScene reconnectionTimeout:(int)reconnectionTimeout encoderType:(QNVideoEncoderType)encoderType;
  119. @end
  120. NS_ASSUME_NONNULL_END