AgoraRtcChannelMediaOptions
频道媒体设置选项。
__attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject
@property(assign, nonatomic) BOOL publishCameraTrack;
@property(assign, nonatomic) BOOL publishSecondaryCameraTrack;
@property(assign, nonatomic) BOOL publishMicrophoneTrack;
#if TARGET_OS_IPHONE
@property(assign, nonatomic) BOOL publishScreenCaptureVideo;
@property(assign, nonatomic) BOOL publishScreenCaptureAudio;
#elif TARGET_OS_MAC
@property(assign, nonatomic) BOOL publishThirdCameraTrack;
@property(assign, nonatomic) BOOL publishFourthCameraTrack;
@property(assign, nonatomic) BOOL publishScreenTrack;
@property(assign, nonatomic) BOOL publishSecondaryScreenTrack;
@property(assign, nonatomic) BOOL publishThirdScreenTrack;
@property(assign, nonatomic) BOOL publishFourthScreenTrack;
#endif
@property(assign, nonatomic) BOOL publishCustomAudioTrack;
@property(assign, nonatomic) NSInteger publishCustomAudioTrackId;
@property(assign, nonatomic) BOOL publishCustomVideoTrack;
@property(assign, nonatomic) BOOL publishEncodedVideoTrack;
@property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack;
@property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack;
@property(assign, nonatomic) BOOL publishTranscodedVideoTrack;
@property(assign, nonatomic) BOOL autoSubscribeAudio;
@property(assign, nonatomic) BOOL autoSubscribeVideo;
@property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout;
@property(assign, nonatomic) NSInteger publishMediaPlayerId;
@property(assign, nonatomic) AgoraClientRole clientRoleType;
@property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel;
@property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType;
@property(assign, nonatomic) AgoraChannelProfile channelProfile;
@property(copy, nonatomic) NSString * _Nullable token;
@property(assign, nonatomic) BOOL enableBuiltInMediaEncryption;
@property(assign, nonatomic) BOOL publishRhythmPlayerTrack;
@property(assign, nonatomic) BOOL isInteractiveAudience;
@property(assign, nonatomic) NSInteger customVideoTrackId;
@property(assign, nonatomic) BOOL isAudioFilterable;
@end
AgoraRtcConnection
publishMicrophoneTrack
publishCustomAudioTrack
publishMediaPlayerAudioTrack
YES
publishCameraTrack
publishScreenTrack
publishCustomVideoTrack
publishEncodedVideoTrack
YES
注意: 建议你根据业务场景自行设置成员参数值,否则 SDK 会自动对成员参数进行赋值。
publishCameraTrack
设置是否发布摄像头采集的视频:
YES
:发布摄像头采集的视频。NO
:不发布摄像头采集的视频。
publishSecondaryCameraTrack
设置是否发布第二个摄像头采集的视频:
YES
:发布第二个摄像头采集的视频。NO
:不发布第二个摄像头采集的视频。
publishMicrophoneTrack
设置是否发布麦克风采集到的音频:
YES
:发布麦克风采集到的音频。NO
:不发布麦克风采集到的音频。
publishThirdCameraTrack
设置是否发布第三个摄像头采集的视频:
YES
:发布第三个摄像头采集的视频。NO
:不发布第三个摄像头采集的视频。
publishFourthCameraTrack
设置是否发布第四个摄像头采集的视频:
YES
:发布第四个摄像头采集的视频。NO
:不发布第四个摄像头采集的视频。
publishScreenTrack
设置是否发布屏幕采集的视频:
YES
:发布屏幕采集到的视频。NO
:不发布屏幕采集到的视频。
publishSecondaryScreenTrack
设置是否发布第二个屏幕采集的视频:
YES
:发布第二个屏幕采集到的视频。NO
:不发布第二个屏幕采集到的视频。
publishThirdScreenTrack
设置是否发布第三个屏幕采集的视频:
YES
:发布第三个屏幕采集到的视频。NO
:不发布第三个屏幕采集到的视频。
publishFourthScreenTrack
设置是否发布第四个屏幕采集的视频:
YES
:发布第四个屏幕采集到的视频。NO
:不发布第四个屏幕采集到的视频。
publishCustomAudioTrack
设置是否发布自定义采集的音频:
YES
:发布自定义采集到的音频。NO
:不发布自定义采集到的音频。
publishCustomAudioTrackId
待发布的自定义音频轨道的 ID。默认值为 0。
如果你已在 setExternalAudioSource [2/2]
中设置了 sourceNumber
大于 1,SDK 会创建对应数量的自采集音频轨道,并从 0 开始为每一个音频轨道分配一个 ID。
publishCustomVideoTrack
设置是否发布自定义采集的视频:
YES
:发布自定义采集的视频。NO
:不发布自定义采集到的视频。
publishEncodedVideoTrack
设置是否发布编码后的视频:
YES
:发布编码后的视频 。NO
:不发布编码后的视频。
publishMediaPlayerAudioTrack
设置是否发布媒体播放器的音频:
YES
:发布媒体播放器的音频。NO
:不发布媒体播放器的音频。
publishMediaPlayerVideoTrack
设置是否发布媒体播放器的视频:
YES
:发布媒体播放器的视频。NO
:不发布媒体播放器的视频。
autoSubscribeAudio
设置是否自动订阅所有音频流:
YES
:自动订阅所有音频流。NO
:不自动订阅任何音频流。
autoSubscribeVideo
设置是否自动订阅所有视频流:
YES
:自动订阅所有视频流。NO
:不自动订阅任何视频流。
enableAudioRecordingOrPlayout
设置是否开启音频录制或播放:
YES
:开启音频录制或播放。NO
:不开启音频录制或播放。
YES
。publishMediaPlayerId
待发布的媒体播放器的 ID。默认值为 0。
clientRoleType
用户角色。详见 AgoraClientRole
。
注: 角色为观众的用户无法在频道内发布音视频流。在直播场景下发流时,请确保你的用户角色已切换为主播。
audienceLatencyLevel
观众端延时级别。详见 AgoraAudienceLatencyLevelType
。
defaultVideoStreamType
默认订阅的视频流类型: AgoraVideoStreamType
。
channelProfile
频道使用场景。详见 AgoraChannelProfile
。
token
(可选)在服务端生成的用于鉴权的动态密钥。详见使用 Token 鉴权。
警告:
- 该参数仅在调用
updateChannelWithMediaOptions
或updateChannelExWithMediaOptions
时生效。 - 请确保用于生成 token 的 App ID、频道名和用户名和
sharedEngineWithConfig
方法初始化引擎时用的 App ID,以及joinChannelByToken [2/4]
或joinChannelExByToken [1/2]
方法加入频道时设置的频道名和用户名是一致的。
publishRhythmPlayerTrack
设置是否发布虚拟节拍器声音至远端:
YES
:发布。本地用户和远端用户都能听到节拍器。NO
:不发布。只有本地用户能听到节拍器。
isInteractiveAudience
是否开启互动观众模式:
YES
:开启互动观众模式。成功开启后,本地用户作为互动观众,收到低延时和流畅的远端用户视频。NO
:不开启互动观众模式。本地用户作为普通观众,收到默认设置的远端用户视频。
- 该参数用于实现跨直播间连麦场景。连麦主播需要调用
joinChannelExByToken [1/2]
方法,以观众身份加入对方的直播间,并将isInteractiveAudience
设置为YES
。 - 仅当用户角色为
AgoraClientRoleAudience
时,该参数生效。
customVideoTrackId
调用 createCustomVideoTrack
方法返回的视频轨道 ID。默认值为 0。