You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

441 lines
10 KiB

//
// JCCallItem.h
// JCSDK-OC
//
// Created by maikireton on 2017/8/11.
// Copyright © 2017年 juphoon. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "JCCallConstants.h"
/**
* @addtogroup
* @{
*/
/**
*
*/
@interface JCCallChangeParam : NSObject
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool state;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool hold;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool held;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool mute;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool audioRecord;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool localVideoRecord;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool remoteVideoRecord;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool audioOutputType;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool active;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool uploadVideoStreamSelf;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool uploadVideoStreamOther;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool netStatus;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool otherAudioInterrupt;
@end
/**
* UI可以根据其中的状态进行更新
*/
@interface JCCallItem : NSObject
/**
*
*/
@property (nonatomic, readonly, copy) NSString* __nonnull userId;
/**
*
*
* @note
* -
* - {@link JCCallCallback#onCallItemAdd: onCallItemAdd} {@link JCMessageChannel#sendMessage:keyId:messageType:text:extraParams:cookie:atAll:atServerUidList: sendMessage}
*/
@property (nonatomic , copy) NSString* __nullable displayName;
/**
*
*
* {@link JCMediaDevice#startVideo:renderType: startVideo} 使 {@link startOtherVideo: startOtherVideo}
*/
@property (nonatomic, readonly, copy) NSString* __nonnull renderId;
/**
*
*
* - @ref JCCallDirectionIn :
* - @ref JCCallDirectionOut :
*/
@property (nonatomic, readonly) JCCallDirection direction;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool video;
/**
*
*/
@property (nonatomic, readonly) long beginTime;
/**
*
*/
@property (nonatomic, readonly) long talkingBeginTime;
/**
*
*
*
* - @ref JCCallStateInit :
* - @ref JCCallStatePending :
* - @ref JCCallStateConnecting :
* - @ref JCCallStateTalking :
* - @ref JCCallStateOk :
* - @ref JCCallStateCancel :
* - @ref JCCallStateCanceled :
* - @ref JCCallStateMissed :
* - @ref JCCallStateError :
*/
@property (nonatomic, readonly) JCCallState state;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool hold;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool held;
/**
*
*
* @deprecated v2.7.1 Juphoon 使使 {@ref JCCall.muteMicrophone:mute: muteMicrophone} /
* 使 @ref microphoneMute
* - true:
* - false:
*/
@property (nonatomic, readonly) bool mute;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool microphoneMute;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool speakerMute;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool audioRecord;
/**
*
*/
@property (copy, nonatomic, readonly) NSString* __nullable audioRecordFilePath;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool localVideoRecord;
/**
*
*/
@property (copy, nonatomic, readonly) NSString* __nullable localVideoRecordFilePath;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool remoteVideoRecord;
/**
*
*/
@property (copy, nonatomic, readonly) NSString* __nullable remoteVideoRecordFilePath;
/**
*
*/
@property (nonatomic, readonly, copy) NSString* __nullable audioOutputType;
/**
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool active;
/**
*
*
* @note
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool uploadVideoStreamSelf;
/**
*
*
* @note
*
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool uploadVideoStreamOther;
/**
*
*
* @ref JCCallReason "JCCall 结束原因"
*/
@property (nonatomic, readonly) JCCallReason reason;
/**
*
*
* - @ref JCCallNetWorkNA :
* - @ref JCCallNetWorkDisconnected :
* - @ref JCCallNetWorkVeryBad :
* - @ref JCCallNetWorkBad :
* - @ref JCCallNetWorkNormal :
* - @ref JCCallNetWorkGood :
* - @ref JCCallNetWorkVeryGood :
*/
@property (nonatomic, readonly) JCCallNetWork audioNetSendStatus;
/**
*
*
* - @ref JCCallNetWorkNA :
* - @ref JCCallNetWorkDisconnected :
* - @ref JCCallNetWorkVeryBad :
* - @ref JCCallNetWorkBad :
* - @ref JCCallNetWorkNormal :
* - @ref JCCallNetWorkGood :
* - @ref JCCallNetWorkVeryGood :
*/
@property (nonatomic, readonly) JCCallNetWork audioNetReceiveStatus;
/**
*
*
* - @ref JCCallNetWorkNA :
* - @ref JCCallNetWorkDisconnected :
* - @ref JCCallNetWorkVeryBad :
* - @ref JCCallNetWorkBad :
* - @ref JCCallNetWorkNormal :
* - @ref JCCallNetWorkGood :
* - @ref JCCallNetWorkVeryGood :
*/
@property (nonatomic, readonly) JCCallNetWork videoNetSendStatus;
/**
*
*
* - @ref JCCallNetWorkNA :
* - @ref JCCallNetWorkDisconnected :
* - @ref JCCallNetWorkVeryBad :
* - @ref JCCallNetWorkBad :
* - @ref JCCallNetWorkNormal :
* - @ref JCCallNetWorkGood :
* - @ref JCCallNetWorkVeryGood :
*/
@property (nonatomic, readonly) JCCallNetWork videoNetReceiveStatus;
/**
*
*
* {@link JCCall#call:video:callParam: call} @ref JCCall#callParam "callParam" @ref JCCallParam#extraParam "extraParam"
*
* @return
*/
@property (nonatomic, readonly, copy) NSString* __nullable extraParam;
/**
* CallId
*
*
*/
@property (nonatomic, readonly, copy) NSString* __nullable serverCallId;
/**
*
* - true:
* - false:
*/
@property (nonatomic, readonly) bool otherAudioInterrupt;
/**
*
*
* {@link JCCall#call:video:callParam: call} @ref JCCallParam "callParam" @ref JCCallParam.ticket "ticket"
*/
@property (nonatomic, readonly) NSString *__nullable ticket;
/**
*
* - true:
* - false:
*/
@property (nonatomic) bool autoStartAudio;
/**
*
* @return JCCallItem
*/
-(NSString* __nonnull)toString;
/**
*
*
* @param type
* - @ref JCMediaDeviceRenderFullScreen :
* - @ref JCMediaDeviceRenderFullContent :
* - @ref JCMediaDeviceRenderFullAuto :
* @return
*/
-(JCMediaDeviceVideoCanvas* __nullable)startSelfVideo:(JCMediaDeviceRender)type;
/**
*
*/
-(void)stopSelfVideo;
/**
*
*
* @param type
* - @ref JCMediaDeviceRenderFullScreen :
* - @ref JCMediaDeviceRenderFullContent :
* - @ref JCMediaDeviceRenderFullAuto :
* @return
*/
-(JCMediaDeviceVideoCanvas* __nullable)startOtherVideo:(JCMediaDeviceRender)type;
/**
*
*/
-(void)stopOtherVideo;
@end
/**
* @}
*/