WhiteBroadcastState.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // BroadcastState.h
  3. // WhiteSDK
  4. //
  5. // Created by leavesster on 2018/8/14.
  6. //
  7. #import "WhiteObject.h"
  8. #import "WhiteMemberInformation.h"
  9. /**
  10. 视角模式
  11. */
  12. typedef NS_ENUM(NSInteger, WhiteViewMode) {
  13. /**
  14. (默认)自由模式。
  15. 该模式下用户可以主动调整视角,不受其他用户视角模式设置的影响,也不会影响其他用户的视角模式设置。
  16. **Note:** 当房间内不存在视角为主播模式的用户时,所有用户的视角都默认为自由模式。
  17. */
  18. WhiteViewModeFreedom,
  19. /**
  20. 跟随模式。
  21. 该模式下用户的视角会跟随主播的视角。
  22. **Note:**
  23. - 当一个用户的视角设置为主播模式后,房间内其他所有用户(包括新加入房间的用户)的视角会被自动设置为跟随模式。
  24. - 跟随模式的用户进行白板操作时,其视角会自动切换为自由模式。
  25. - 切换该模式需要房间中存在主播,否则会保持为自由模式
  26. 如有需要,可以调用 [disableOperations](disableOperations) 禁止用户操作,以锁定用户的视角模式。
  27. */
  28. WhiteViewModeFollower,
  29. /**
  30. 主播模式。
  31. 该模式下用户可以主动调整视角,并将自己的视角同步给房间内所有其他用户。
  32. **Note:**
  33. - 每个房间只能有一个主播模式视角的用户。
  34. - 当一个用户的视角设置为主播模式后,房间内所有其他用户(包括新加入房间的用户)的视角会被自动设置为跟随模式。
  35. */
  36. WhiteViewModeBroadcaster,
  37. };
  38. NS_ASSUME_NONNULL_BEGIN
  39. /** 主播模式用户的用户信息。 */
  40. @interface WhiteBroadcasterInformation : WhiteObject
  41. /** 主播模式用户在房间中的用户 ID。数据类型为 NSNumber。
  42. */
  43. @property (nonatomic, assign, readonly) NSNumber *id;
  44. /** 主播模式用户的用户信息。
  45. */
  46. @property (nonatomic, assign, readonly, nullable) id payload;
  47. @end
  48. /** 视角状态,包含视角为主播模式的用户信息。 */
  49. @interface WhiteBroadcastState : WhiteObject
  50. /**
  51. 主播模式用户的视角模式。
  52. */
  53. @property (nonatomic, assign, readonly) WhiteViewMode viewMode;
  54. /**
  55. 主播模式用户在房间中的用户 ID。详见 [WhiteBroadcasterInformation](WhiteBroadcasterInformation)。
  56. @since 2.4.7
  57. */
  58. @property (nonatomic, assign, nullable, readonly) NSNumber *broadcasterId;
  59. /**
  60. 主播模式用户的用户信息。详见 [WhiteBroadcasterInformation](WhiteBroadcasterInformation)。
  61. */
  62. @property (nonatomic, strong, nullable, readonly) WhiteBroadcasterInformation *broadcasterInformation;
  63. @end
  64. NS_ASSUME_NONNULL_END