fix:修改图标和其他
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AvailableLibraries</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>RongCallWrapper.framework/RongCallWrapper</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>RongCallWrapper.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>RongCallWrapper.framework/RongCallWrapper</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-x86_64-simulator</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>RongCallWrapper.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>x86_64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
<key>SupportedPlatformVariant</key>
|
||||
<string>simulator</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XFWK</string>
|
||||
<key>XCFrameworkFormatVersion</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// RCCallIWAndroidPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCCallIWImportanceHW) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCCallIWImportanceHWNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCCallIWImportanceHWLow = 1,
|
||||
};
|
||||
|
||||
@interface RCCallIWAndroidPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
Android 平台 Push 唯一标识
|
||||
目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *notificationId;
|
||||
|
||||
/*!
|
||||
小米的渠道 ID
|
||||
该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdMi;
|
||||
|
||||
/*!
|
||||
小米 Large icon 链接
|
||||
Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlMi;
|
||||
|
||||
/*!
|
||||
华为的渠道 ID
|
||||
该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdHW;
|
||||
|
||||
/*!
|
||||
华为通知栏消息右侧大图标 URL
|
||||
如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。
|
||||
图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlHW;
|
||||
|
||||
/*!
|
||||
华为推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWImportanceHW importanceHW;
|
||||
|
||||
/*!
|
||||
华为推送消息分类
|
||||
|
||||
社交通讯:即时通讯[IM],音频、视频通话[VOIP]
|
||||
服务提醒:订阅[SUBSCRIPTION],出行[TRAVEL],健康[HEALTH],工作事项提醒[WORK],帐号动态[ACCOUNT],订单&物流[EXPRESS],财务[FINANCE],系统提示[SYSTEM_REMINDER],邮件[MAIL]
|
||||
资讯营销类:内容资讯/新闻/财经动态/生活资讯/社交动态/调研/其他[MARKETING]
|
||||
营销活动:产品促销/功能推荐/运营活动/MARKETING
|
||||
更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.0
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryHW;
|
||||
|
||||
/*!
|
||||
OPPO 的渠道 ID
|
||||
该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdOPPO;
|
||||
|
||||
/*!
|
||||
VIVO 推送通道类型
|
||||
开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。
|
||||
目前可选值 "0"(运营消息) 和 "1"(系统消息)
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *typeVivo;
|
||||
|
||||
/*!
|
||||
Vivo 推送消息分类
|
||||
|
||||
系统消息分类
|
||||
即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
|
||||
运营消息分类
|
||||
新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
|
||||
更多信息请参考 Vivo 消息分类标准文档: https://dev.vivo.com.cn/documentCenter/doc/359
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.2
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryVivo;
|
||||
|
||||
/*!
|
||||
FCM 通知类型推送时所使用的分组 id
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *collapseKeyFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知类型的推送所使用的通知图片 url
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知的频道 ID
|
||||
该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdFCM;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// RCCallIWAudioConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWAudioConfig : NSObject
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// RCCallIWCallSession.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongCallWrapper/RCCallIWUserProfile.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWCallSession : NSObject
|
||||
|
||||
/*!
|
||||
通话类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWCallType callType;
|
||||
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWMediaType mediaType;
|
||||
|
||||
/*!
|
||||
通话id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *callId;
|
||||
|
||||
/*!
|
||||
通话目标id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
RTC会话唯一标识, 用于 Server API
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *sessionId;
|
||||
|
||||
/*!
|
||||
通话的扩展信息
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *extra;
|
||||
|
||||
/*!
|
||||
通话开始的时间
|
||||
|
||||
@discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。
|
||||
*/
|
||||
@property (nonatomic, readonly) long long startTime;
|
||||
|
||||
/*!
|
||||
通话接通时间
|
||||
*/
|
||||
@property (nonatomic, readonly) long long connectedTime;
|
||||
|
||||
/*!
|
||||
通话结束时间
|
||||
*/
|
||||
@property (nonatomic, readonly) long long endTime;
|
||||
|
||||
/*!
|
||||
当前通话发起者
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *caller;
|
||||
|
||||
/*!
|
||||
邀请当前用户到当前通话的邀请者
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *inviter;
|
||||
|
||||
/*!
|
||||
当前用户
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *mine;
|
||||
|
||||
/*!
|
||||
当前通话的全部用户列表
|
||||
*/
|
||||
@property (nonatomic, readonly) NSArray<RCCallIWUserProfile *> *users;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,429 @@
|
||||
//
|
||||
// RCCallIWDefine.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#ifndef RCCallIWDefine_h
|
||||
#define RCCallIWDefine_h
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
用户身份类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWUserType) {
|
||||
/*!
|
||||
普通身份
|
||||
*/
|
||||
RCCallIWUserTypeNormal = 1,
|
||||
/*!
|
||||
观察者身份
|
||||
*/
|
||||
RCCallIWUserTypeObserver = 2
|
||||
};
|
||||
|
||||
/*!
|
||||
通话类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCallType) {
|
||||
/*!
|
||||
单聊通话
|
||||
*/
|
||||
RCCallIWCallTypeSingle = 0,
|
||||
/*!
|
||||
群聊通话
|
||||
*/
|
||||
RCCallIWCallTypeGroup = 1
|
||||
};
|
||||
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWMediaType) {
|
||||
/*!
|
||||
音频通话
|
||||
*/
|
||||
RCCallIWMediaTypeAudio = 0,
|
||||
/*!
|
||||
音视频通话
|
||||
*/
|
||||
RCCallIWMediaTypeAudioVideo = 2
|
||||
};
|
||||
|
||||
/*!
|
||||
相机类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCamera) {
|
||||
/*!
|
||||
未指定
|
||||
*/
|
||||
RCCallIWCameraNone = -1,
|
||||
/*!
|
||||
前置相机
|
||||
*/
|
||||
RCCallIWCameraFront = 0,
|
||||
/*!
|
||||
后置相机
|
||||
*/
|
||||
RCCallIWCameraBack = 1,
|
||||
};
|
||||
|
||||
/*!
|
||||
网络质量
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWNetworkQuality) {
|
||||
/*!
|
||||
未知
|
||||
*/
|
||||
RCCallIWNetworkQualityUnknown = 0,
|
||||
/*!
|
||||
极好
|
||||
*/
|
||||
RCCallIWNetworkQualityExcellent = 1,
|
||||
/*!
|
||||
好
|
||||
*/
|
||||
RCCallIWNetworkQualityGood = 2,
|
||||
/*!
|
||||
一般
|
||||
*/
|
||||
RCCallIWNetworkQualityPoor = 3,
|
||||
/*!
|
||||
差
|
||||
*/
|
||||
RCCallIWNetworkQualityBad = 4,
|
||||
/*!
|
||||
极差
|
||||
*/
|
||||
RCCallIWNetworkQualityTerrible = 5,
|
||||
};
|
||||
|
||||
/*!
|
||||
视频显示模式
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWViewFitType) {
|
||||
/*!
|
||||
拉伸全屏
|
||||
*/
|
||||
RCCallIWViewFitTypeFill = 0,
|
||||
/*!
|
||||
满屏显示, 等比例填充, 直到填充满整个试图区域,其中一个维度的部分区域会被裁剪
|
||||
*/
|
||||
RCCallIWViewFitTypeCover = 1,
|
||||
/*!
|
||||
完整显示, 填充黑边, 等比例填充,直达一个维度到达区域边界
|
||||
*/
|
||||
RCCallIWViewFitTypeCenter = 2,
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
通话视频参数
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWVideoProfile) {
|
||||
/*!
|
||||
144x256, 15fps, 120~240kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_144_256 = 10,
|
||||
/*!
|
||||
240x240, 15fps, 120~280kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_240 = 20,
|
||||
/*!
|
||||
240x320, 15fps, 120~400kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_320 = 30,
|
||||
/*!
|
||||
360x480, 15fps, 150~650kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_480 = 40,
|
||||
/*!
|
||||
360x640, 15fps, 180~800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_640 = 50,
|
||||
/*!
|
||||
480x640, 15fps, 200~900kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_640 = 60,
|
||||
/*!
|
||||
480x720, 15fps, 200~1000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_720 = 70,
|
||||
/*!
|
||||
720x1280, 15fps, 250~2200kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_720_1280 = 80,
|
||||
/*!
|
||||
1080x1920, 15fps, 400~4000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_1080_1920 = 90,
|
||||
/*!
|
||||
144x256, 30fps, 240~480kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_144_256_HIGH = 11,
|
||||
/*!
|
||||
240x240, 30fps, 240~360kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_240_HIGH = 21,
|
||||
/*!
|
||||
240x320, 30fps, 240~800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_320_HIGH = 31,
|
||||
/*!
|
||||
360x480, 30fps, 300~1300kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_480_HIGH = 41,
|
||||
/*!
|
||||
360x640, 30fps, 360~1600kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_640_HIGH = 51,
|
||||
/*!
|
||||
480x640, 30fps, 400~1800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_640_HIGH = 61,
|
||||
/*!
|
||||
480x720, 30fps, 400~2000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_720_HIGH = 71,
|
||||
/*!
|
||||
720x1080, 30fps, 500~4400kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_720_1280_HIGH = 81,
|
||||
/*!
|
||||
1080x1920, 30fps, 800~8000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_1080_1920_HIGH = 91,
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
摄像机方向
|
||||
值与 AVCaptureVideoOrientation 一致
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCameraOrientation) {
|
||||
RCCallIWCameraOrientationPortrait = 1,
|
||||
RCCallIWCameraOrientationPortraitUpsideDown = 2,
|
||||
RCCallIWCameraOrientationLandscapeRight = 3,
|
||||
RCCallIWCameraOrientationLandscapeLeft = 4,
|
||||
};
|
||||
|
||||
/*!
|
||||
通话结束原因
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWDisconnectReason) {
|
||||
/*!
|
||||
己方取消已发出的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonCancel = 1,
|
||||
/*!
|
||||
己方拒绝收到的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonReject = 2,
|
||||
/*!
|
||||
己方挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonHangup = 3,
|
||||
/*!
|
||||
己方忙碌
|
||||
*/
|
||||
RCCallIWDisconnectReasonBusyLine = 4,
|
||||
/*!
|
||||
己方未接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonNoResponse = 5,
|
||||
/*!
|
||||
己方不支持当前引擎
|
||||
*/
|
||||
RCCallIWDisconnectReasonEngineUnsupported = 6,
|
||||
/*!
|
||||
己方网络出错
|
||||
*/
|
||||
RCCallIWDisconnectReasonNetworkError = 7,
|
||||
/*!
|
||||
己方获取媒体资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonResourceError = 8,
|
||||
/*!
|
||||
己方发布资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonPublishError = 9,
|
||||
/*!
|
||||
己方订阅资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonSubscribeError = 10,
|
||||
/*!
|
||||
对方取消已发出的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteCancel = 11,
|
||||
/*!
|
||||
对方拒绝收到的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteReject = 12,
|
||||
/*!
|
||||
通话过程对方挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteHangup = 13,
|
||||
/*!
|
||||
对方忙碌
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteBusyLine = 14,
|
||||
/*!
|
||||
对方未接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteNoResponse = 15,
|
||||
/*!
|
||||
对方不支持当前引擎
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteEngineUnsupported = 16,
|
||||
/*!
|
||||
对方网络错误
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteNetworkError = 17,
|
||||
/*!
|
||||
对方获取媒体资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteResourceError = 18,
|
||||
/*!
|
||||
对方发布资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemotePublishError = 19,
|
||||
/*!
|
||||
对方订阅资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteSubscribeError = 20,
|
||||
/*!
|
||||
己方其他端已加入新通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonKickedByOtherCall = 21,
|
||||
/*!
|
||||
己方其他端已在通话中
|
||||
*/
|
||||
RCCallIWDisconnectReasonInOtherCall = 22,
|
||||
/*!
|
||||
己方已被禁止通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonKickedByServer = 23,
|
||||
/*!
|
||||
对方其他端已加入新通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteKickedByOtherCall = 24,
|
||||
/*!
|
||||
对方其他端已在通话中
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteInOtherCall = 25,
|
||||
/*!
|
||||
对方已被禁止通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteKickedByServer = 26,
|
||||
/*!
|
||||
己方其他端已接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonAcceptByOtherClient = 27,
|
||||
/*!
|
||||
己方其他端已挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonHangupByOtherClient = 28,
|
||||
/*!
|
||||
己方被对方加入黑名单
|
||||
*/
|
||||
RCCallIWDisconnectReasonAddToBlackList = 29,
|
||||
/*!
|
||||
音视频服务已关闭
|
||||
*/
|
||||
RCCallIWDisconnectReasonMediaServerClosed = 30,
|
||||
/*!
|
||||
己方被降级为观察者
|
||||
*/
|
||||
RCCallIWDisconnectReasonDegrade = 31,
|
||||
/*!
|
||||
己方摄像头初始化错误,可能是没有打开使用摄像头权限
|
||||
*/
|
||||
RCCallIWDisconnectReasonInitVideoError = 32,
|
||||
/*!
|
||||
其他端已经接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonOtherDeviceHadAccepted = 33,
|
||||
/*!
|
||||
im ipc服务已断开
|
||||
*/
|
||||
RCCallIWDisconnectReasonServiceDisconnected = 34
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
通话错误类型
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWErrorCode) {
|
||||
/*!
|
||||
成功
|
||||
*/
|
||||
RCCallIWSuccess = 0,
|
||||
/*!
|
||||
开通的音视频服务没有及时生效或音视频服务已关闭,请等待3-5小时后重新安装应用或开启音视频服务再进行测试
|
||||
*/
|
||||
RCCallIWEngineNotFound = 1,
|
||||
/*!
|
||||
网络不可用
|
||||
*/
|
||||
RCCallIWNetworkUnavailable = 2,
|
||||
/*!
|
||||
已经处于通话中了
|
||||
*/
|
||||
RCCallIWOneCallExisted = 3,
|
||||
/*!
|
||||
无效操作
|
||||
*/
|
||||
RCCallIWOperationUnavailable = 4,
|
||||
/*!
|
||||
参数错误
|
||||
*/
|
||||
RCCallIWInvalidParam = 5,
|
||||
/*!
|
||||
网络不稳定
|
||||
*/
|
||||
RCCallIWNetworkUnstable = 6,
|
||||
/*!
|
||||
媒体服务请求失败
|
||||
*/
|
||||
RCCallIWMediaRequestFailed = 7,
|
||||
/*!
|
||||
媒体服务初始化失败
|
||||
*/
|
||||
RCCallIWMediaServerNotReady = 8,
|
||||
/*!
|
||||
媒体服务未初始化
|
||||
*/
|
||||
RCCallIWMediaServerNotInitialized = 9,
|
||||
/*!
|
||||
媒体服务请求超时
|
||||
*/
|
||||
RCCallIWMediaRequestTimeout = 10,
|
||||
/*!
|
||||
未知的媒体服务错误
|
||||
*/
|
||||
RCCallIWMediaUnkownError = 11,
|
||||
/*!
|
||||
已被禁止通话
|
||||
*/
|
||||
RCCallIWMediaKickedByServerError = 12,
|
||||
/*!
|
||||
音视频服务已关闭
|
||||
*/
|
||||
RCCallIWMediaServerClosedError = 13,
|
||||
/*!
|
||||
音视频发布资源失败
|
||||
*/
|
||||
RCCallIWMediaServerPublishError = 14,
|
||||
/*!
|
||||
音视频订阅资源失败
|
||||
*/
|
||||
RCCallIWMediaServerSubscribeError = 15,
|
||||
/*!
|
||||
其他端已在通话中错误
|
||||
*/
|
||||
RCCallIWMediaJoinRoomRefuseError = 16
|
||||
};
|
||||
|
||||
#endif /* RCCallIWDefine_h */
|
||||
@@ -0,0 +1,449 @@
|
||||
//
|
||||
// RCCallIWEngine.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
@class RCCallIWEngineConfig;
|
||||
@class RCCallIWPushConfig;
|
||||
@class RCCallIWAudioConfig;
|
||||
@class RCCallIWVideoConfig;
|
||||
@class RCCallIWCallSession;
|
||||
@class RCCallIWUserProfile;
|
||||
@class RCCallIWBeautyOption;
|
||||
|
||||
@protocol RCCallIWEngineDelegate;
|
||||
@protocol RCCallIWSampleBufferVideoFrameDelegate;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWEngine : NSObject
|
||||
|
||||
/*!
|
||||
获取引擎实例
|
||||
|
||||
@return 引擎实例
|
||||
*/
|
||||
+ (RCCallIWEngine *)sharedInstance;
|
||||
|
||||
/*!
|
||||
配置引擎
|
||||
|
||||
@param config 引擎配置
|
||||
*/
|
||||
- (void)setEngineConfig:(nullable RCCallIWEngineConfig *)config;
|
||||
|
||||
/*!
|
||||
配置推送
|
||||
|
||||
@param callPushConfig 呼叫推送配置
|
||||
@param hangupPushConfig 挂断推送配置
|
||||
*/
|
||||
- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig
|
||||
hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig;
|
||||
|
||||
/*!
|
||||
配置推送
|
||||
|
||||
@param callPushConfig 呼叫推送配置
|
||||
@param hangupPushConfig 挂断推送配置
|
||||
@param enableApplePushKit 设置是否使用苹果 PushKit 推送, YES 使用, NO 不使用
|
||||
@discussion
|
||||
是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑,
|
||||
如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑.
|
||||
*/
|
||||
- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig
|
||||
hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig
|
||||
enableApplePushKit:(BOOL)enableApplePushKit;
|
||||
|
||||
/*!
|
||||
配置音频
|
||||
|
||||
@param config 音频配置
|
||||
*/
|
||||
- (void)setAudioConfig:(nullable RCCallIWAudioConfig *)config;
|
||||
|
||||
/*!
|
||||
配置视频
|
||||
|
||||
@param config 视频配置
|
||||
*/
|
||||
- (void)setVideoConfig:(nullable RCCallIWVideoConfig *)config;
|
||||
|
||||
/*!
|
||||
配置监听
|
||||
|
||||
@param delegate 监听代理
|
||||
*/
|
||||
- (void)setEngineDelegate:(nullable NSObject<RCCallIWEngineDelegate> *)delegate;
|
||||
|
||||
/*!
|
||||
拨打电话-单聊
|
||||
|
||||
@param userId 被叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前Call Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)userId
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-单聊
|
||||
|
||||
@param userId 被叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)userId
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(nullable NSArray<NSString *> *)observerUserIds
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(nullable NSArray<NSString *> *)observerUserIds
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
获取当前通话 Session
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)getCurrentCallSession;
|
||||
|
||||
/*!
|
||||
接电话
|
||||
|
||||
@discussion
|
||||
如果呼入类型为语音通话,即接受语音通话,如果呼入类型为视频通话,即接受视频通话,打开默认(前置)摄像头。
|
||||
观察者不开启摄像头。
|
||||
*/
|
||||
- (void)accept;
|
||||
|
||||
/*!
|
||||
挂断电话
|
||||
*/
|
||||
- (void)hangup;
|
||||
|
||||
/*!
|
||||
麦克风控制
|
||||
|
||||
@param enable YES 开启麦克风,NO 关闭麦克风
|
||||
*/
|
||||
- (void)enableMicrophone:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
获取当前麦克风状态
|
||||
|
||||
@return 当前麦克风是否开启
|
||||
*/
|
||||
- (BOOL)isEnableMicrophone;
|
||||
|
||||
/*!
|
||||
扬声器控制
|
||||
|
||||
@param enable YES 开启扬声器,NO 关闭扬声器
|
||||
*/
|
||||
- (void)enableSpeaker:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
获取当前扬声器状态
|
||||
|
||||
@return 当前扬声器是否开启
|
||||
*/
|
||||
- (BOOL)isEnableSpeaker;
|
||||
|
||||
/*!
|
||||
摄像头控制
|
||||
|
||||
@param enable YES 开启摄像头,NO 关闭摄像头
|
||||
*/
|
||||
- (void)enableCamera:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
摄像头控制
|
||||
|
||||
@param enable YES 开启摄像头,NO 关闭摄像头
|
||||
@param camera 指定摄像头
|
||||
*/
|
||||
- (void)enableCamera:(BOOL)enable camera:(RCCallIWCamera)camera;
|
||||
|
||||
/*!
|
||||
获取当前摄像头状态
|
||||
|
||||
@return 当前摄像头是否开启
|
||||
*/
|
||||
- (BOOL)isEnableCamera;
|
||||
|
||||
/*!
|
||||
获取当前摄像头
|
||||
|
||||
@return 当前摄像头
|
||||
*/
|
||||
- (RCCallIWCamera)currentCamera;
|
||||
|
||||
/*!
|
||||
翻转摄像头
|
||||
*/
|
||||
- (void)switchCamera;
|
||||
|
||||
/*!
|
||||
设置预览窗口
|
||||
|
||||
@param userId 用户id
|
||||
@param view 视频预览视图
|
||||
*/
|
||||
- (void)setVideoView:(NSString *)userId
|
||||
view:(UIView *)view;
|
||||
|
||||
/*!
|
||||
设置预览窗口
|
||||
|
||||
@param userId 用户id
|
||||
@param view 视频预览视图
|
||||
@param fit 视频显示模式
|
||||
*/
|
||||
- (void)setVideoView:(NSString *)userId
|
||||
view:(UIView *)view
|
||||
fit:(RCCallIWViewFitType)fit;
|
||||
|
||||
/*!
|
||||
修改通话媒体类型
|
||||
|
||||
@param type 通话媒体类型
|
||||
*/
|
||||
- (void)changeMediaType:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
邀请用户
|
||||
|
||||
@param userIds 被邀请用户id列表
|
||||
*/
|
||||
- (void)inviteUsers:(NSArray<NSString *> *)userIds;
|
||||
|
||||
/*!
|
||||
邀请用户
|
||||
|
||||
@param userIds 被邀请用户id列表
|
||||
@param observerUserIds 被邀请观察者id列表
|
||||
*/
|
||||
- (void)inviteUsers:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(NSArray<NSString *> *)observerUserIds;
|
||||
|
||||
- (void)setLocalVideoProcessedDelegate:(id<RCCallIWSampleBufferVideoFrameDelegate>)delegate;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@protocol RCCallIWEngineDelegate <NSObject>
|
||||
|
||||
@required
|
||||
/*!
|
||||
接收到通话呼入的回调
|
||||
|
||||
@param session 通话Session
|
||||
*/
|
||||
- (void)didReceiveCall:(RCCallIWCallSession *)session;
|
||||
|
||||
/*!
|
||||
通话已接通
|
||||
*/
|
||||
- (void)callDidConnect;
|
||||
|
||||
/*!
|
||||
通话已结束
|
||||
|
||||
@param reason 结束原因
|
||||
*/
|
||||
- (void)callDidDisconnect:(RCCallIWDisconnectReason)reason;
|
||||
|
||||
/*!
|
||||
对端用户加入了通话
|
||||
|
||||
@param user 对端用户信息
|
||||
*/
|
||||
- (void)remoteUserDidJoin:(RCCallIWUserProfile *)user;
|
||||
|
||||
/*!
|
||||
对端用户挂断
|
||||
|
||||
@param userId 对端用户信息
|
||||
@param reason 挂断原因
|
||||
*/
|
||||
- (void)remoteUserDidLeave:(NSString *)userId
|
||||
reason:(RCCallIWDisconnectReason)reason;
|
||||
|
||||
|
||||
@optional
|
||||
/*!
|
||||
接收到通话呼入的远程通知的回调
|
||||
*/
|
||||
- (void)didReceiveCallRemoteNotification:(NSString *)callId
|
||||
inviterUserId:(NSString *)inviterUserId
|
||||
mediaType:(RCCallIWMediaType)mediaType
|
||||
userIdList:(NSArray *)userIdList
|
||||
userDict:(NSDictionary *)userDict
|
||||
isVoIPPush:(BOOL)isVoIPPush
|
||||
pushConfig:(RCCallIWPushConfig *)pushConfig;
|
||||
|
||||
/*!
|
||||
接收到取消通话的远程通知的回调
|
||||
*/
|
||||
- (void)didCancelCallRemoteNotification:(NSString *)callId
|
||||
inviterUserId:(NSString *)inviterUserId
|
||||
mediaType:(RCCallIWMediaType)mediaType
|
||||
userIdList:(NSArray *)userIdList
|
||||
pushConfig:(RCCallIWPushConfig *)pushConfig
|
||||
isRemoteCancel:(BOOL)isRemoteCancel;
|
||||
|
||||
/*!
|
||||
开启/关闭摄像头的回调
|
||||
*/
|
||||
- (void)didEnableCamera:(RCCallIWCamera)camera
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
切换摄像头的回调
|
||||
|
||||
@param camera 当前选择的摄像头
|
||||
*/
|
||||
- (void)didSwitchCamera:(RCCallIWCamera)camera;
|
||||
|
||||
/*!
|
||||
通话出现错误的回调
|
||||
*/
|
||||
- (void)callDidError:(RCCallIWErrorCode)code;
|
||||
|
||||
/*!
|
||||
开始呼叫通话的回调
|
||||
*/
|
||||
- (void)callDidMake;
|
||||
|
||||
/*!
|
||||
对端用户正在振铃
|
||||
*/
|
||||
- (void)remoteUserDidRing:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
有用户被邀请加入通话
|
||||
*/
|
||||
- (void)remoteUserDidInvite:(NSString *)userId
|
||||
mediaType:(RCCallIWMediaType)mediaType;
|
||||
|
||||
/*!
|
||||
对端用户切换了媒体类型
|
||||
*/
|
||||
- (void)remoteUserDidChangeMediaType:(RCCallIWUserProfile *)user
|
||||
mediaType:(RCCallIWMediaType)mediaType;
|
||||
|
||||
/*!
|
||||
对端用户开启或关闭了麦克风的状态
|
||||
*/
|
||||
- (void)remoteUserDidChangeMicrophoneState:(RCCallIWUserProfile *)user
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
对端用户开启或关闭了摄像头的状态
|
||||
*/
|
||||
- (void)remoteUserDidChangeCameraState:(RCCallIWUserProfile *)user
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
当前通话网络状态的回调,该回调方法每秒触发一次
|
||||
@param user 用户信息
|
||||
@param quality 网络质量
|
||||
@discussion
|
||||
如果user是本端用户, quality代表上行网络质量
|
||||
如果user是远端用户, quality代表下行网络质量
|
||||
*/
|
||||
- (void)user:(RCCallIWUserProfile *)user networkQuality:(RCCallIWNetworkQuality)quality;
|
||||
|
||||
/*!
|
||||
当前通话某用户声音音量回调,该回调方法每两秒触发一次
|
||||
@param user 用户信息
|
||||
@param volume 声音音量
|
||||
@discussion
|
||||
声音级别: 0~9, 0为无声, 依次变大
|
||||
如果user是本端用户, volume代表发送音量
|
||||
如果user是远端用户, volume代表接收音量
|
||||
*/
|
||||
- (void)user:(RCCallIWUserProfile *)user audioVolume:(int)volume;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// RCCallIWEngineConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
/*!
|
||||
引擎配置
|
||||
*/
|
||||
@interface RCCallIWEngineConfig : NSObject
|
||||
/*!
|
||||
开启通话记录 默认NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL enableCallSummary;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWFlutterView.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by 潘铭达 on 2021/6/16.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCCallIWFlutterViewDelegate <NSObject>
|
||||
|
||||
- (void)changeSize:(int)width height:(int)height;
|
||||
|
||||
- (void)changeRotation:(int)rotation;
|
||||
|
||||
- (void)firstFrameRendered;
|
||||
|
||||
- (void)frameRendered;
|
||||
|
||||
// 当原生层摄像头进行操作的时候 通知 Flutter 层的 view 进行视图的镜像操作
|
||||
- (void)onMirrorChanged:(BOOL)mirror;
|
||||
|
||||
@end
|
||||
|
||||
@interface RCCallIWFlutterView : NSObject
|
||||
|
||||
@property (nonatomic, weak) id<RCCallIWFlutterViewDelegate> textureViewDelegate;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)new NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE;
|
||||
|
||||
+ (RCCallIWFlutterView *)create;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWIOSPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWIOSPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
iOS 平台通知栏分组 ID
|
||||
相同的 thread-id 推送分为一组
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *threadId;
|
||||
|
||||
/*!
|
||||
iOS 标识推送的类型
|
||||
如果不设置后台默认取消息类型字符串,如 RC:TxtMsg
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *category;
|
||||
|
||||
/*!
|
||||
iOS 平台通知覆盖 ID
|
||||
apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *apnsCollapseId;
|
||||
|
||||
/*!
|
||||
iOS 富文本推送内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *richMediaUri;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// RCCallIWPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWIOSPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAndroidPushConfig.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
推送配置
|
||||
*/
|
||||
@interface RCCallIWPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
是否屏蔽通知标题
|
||||
YES: 不显示通知标题
|
||||
NO: 显示通知标题
|
||||
|
||||
@discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。
|
||||
@discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disableTitle;
|
||||
|
||||
/*!
|
||||
推送标题
|
||||
如果没有设置,会使用下面的默认标题显示规则
|
||||
默认标题显示规则:
|
||||
内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
|
||||
自定义消息:默认不显示标题。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *title;
|
||||
|
||||
/*!
|
||||
推送内容
|
||||
优先使用 MessagePushConfig 的 pushContent,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushContent。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *content;
|
||||
|
||||
/*!
|
||||
远程推送附加信息
|
||||
优先使用 MessagePushConfig 的 pushData,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushData。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *data;
|
||||
|
||||
/*!
|
||||
是否强制显示通知详情
|
||||
当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL forceShowDetailContent;
|
||||
|
||||
/*!
|
||||
推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。
|
||||
注:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *templateId;
|
||||
|
||||
/*!
|
||||
iOS 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCCallIWIOSPushConfig *iOSConfig;
|
||||
|
||||
/*!
|
||||
Android 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCCallIWAndroidPushConfig *androidConfig;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWUserProfile.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWUserProfile : NSObject
|
||||
/*!
|
||||
用户身份类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserType userType;
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWMediaType mediaType;
|
||||
/*!
|
||||
用户id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *userId;
|
||||
/*!
|
||||
用户的通话媒体连接ID
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *mediaId;
|
||||
/*!
|
||||
用户是否开启摄像头
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL enableCamera;
|
||||
/*!
|
||||
用户是否开启麦克风
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL enableMicrophone;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,40 @@
|
||||
//
|
||||
// RCCallIWVideoConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWVideoConfig : NSObject
|
||||
|
||||
/*!
|
||||
视频配置
|
||||
默认值 RCCallIW_VIDEO_PROFILE_720_1280
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWVideoProfile profile;
|
||||
/*!
|
||||
摄像头
|
||||
默认值 RCCallIWCameraFront
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWCamera defaultCamera;
|
||||
/*!
|
||||
相机方向
|
||||
默认值 RCCallIWCameraOrientationPortrait
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWCameraOrientation cameraOrientation;
|
||||
|
||||
/*!
|
||||
本地预览是否镜像
|
||||
|
||||
前置摄像头默认: YES,后置摄像头默认: NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL isPreviewMirror;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// RCCallIWVideoFrameDelegate.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by 潘铭达 on 2021/12/27.
|
||||
//
|
||||
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCCallIWSampleBufferVideoFrameDelegate <NSObject>
|
||||
|
||||
- (void)onPixelBuffer:(CVPixelBufferRef)pixelBuffer;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// RCCallIWVideoView.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2023/5/12.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongRTCLib/RongRTCLib.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWVideoView : UIView
|
||||
|
||||
@property (nonatomic, weak, readonly) RCRTCVideoView *videoView;
|
||||
// 预览是否镜像 (最终设置的是原生 videoView,所以要注意设置的时机)
|
||||
@property (nonatomic, assign) BOOL isMirror;
|
||||
// 原生 videoView 添加完成
|
||||
@property (nonatomic, copy) void(^nativeVideoViewDidAdd)(RCRTCVideoView *videoView);
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// RongCallWrapper.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/12.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
//! Project version number for RongCallWrapper.
|
||||
FOUNDATION_EXPORT double RongCallWrapperVersionNumber;
|
||||
|
||||
//! Project version string for RongCallWrapper.
|
||||
FOUNDATION_EXPORT const unsigned char RongCallWrapperVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <RongCallWrapper/PublicHeader.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
#import <RongCallWrapper/RCCallIWEngine.h>
|
||||
#import <RongCallWrapper/RCCallIWCallSession.h>
|
||||
#import <RongCallWrapper/RCCallIWEngineConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAudioConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWVideoConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWIOSPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAndroidPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWUserProfile.h>
|
||||
#import <RongCallWrapper/RCCallIWFlutterView.h>
|
||||
#import <RongCallWrapper/RCCallIWVideoFrameDelegate.h>
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
framework module RongCallWrapper {
|
||||
umbrella header "RongCallWrapper.h"
|
||||
export *
|
||||
|
||||
module * { export * }
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Location</key>
|
||||
<dict>
|
||||
<key>LocationImageQuality</key>
|
||||
<real>0.7</real>
|
||||
<key>LocationImageWidth</key>
|
||||
<string>480</string>
|
||||
<key>LocationImageHeight</key>
|
||||
<string>240</string>
|
||||
</dict>
|
||||
<key>File</key>
|
||||
<dict>
|
||||
<key>RelativePath</key>
|
||||
<string>Documents/MyFile</string>
|
||||
<key>MaxRangeUnit</key>
|
||||
<real>1048576</real>
|
||||
</dict>
|
||||
<key>Voice</key>
|
||||
<dict>
|
||||
<key>AudioEncodingBitRate</key>
|
||||
<real>7950</real>
|
||||
</dict>
|
||||
<key>Image</key>
|
||||
<dict>
|
||||
<key>ThumbnailQuality</key>
|
||||
<string>0.3</string>
|
||||
<key>ThumbnailMaxSize</key>
|
||||
<string>240</string>
|
||||
<key>ThumbnailMinSize</key>
|
||||
<string>100</string>
|
||||
<key>ImageQuality</key>
|
||||
<real>0.85</real>
|
||||
<key>ImageWidth</key>
|
||||
<integer>1080</integer>
|
||||
<key>ImageHeight</key>
|
||||
<integer>1080</integer>
|
||||
</dict>
|
||||
<key>CustomerService</key>
|
||||
<dict>
|
||||
<key>SuspendWhenLeave</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Download</key>
|
||||
<dict>
|
||||
<key>DownloadSliceSize</key>
|
||||
<real>20971520</real>
|
||||
</dict>
|
||||
<key>Sight</key>
|
||||
<dict>
|
||||
<key>SightCompressWidth</key>
|
||||
<integer>540</integer>
|
||||
<key>SightCompressHeight</key>
|
||||
<integer>960</integer>
|
||||
</dict>
|
||||
<key>HeartBeatInterval</key>
|
||||
<integer>15</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,372 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/RCCallIWAndroidPushConfig.h</key>
|
||||
<data>
|
||||
c8Nr+zXJBvG4EEuUrT1QFmj5fnQ=
|
||||
</data>
|
||||
<key>Headers/RCCallIWAudioConfig.h</key>
|
||||
<data>
|
||||
kGPMWb7BecYVlHQ9V+f794nOR4w=
|
||||
</data>
|
||||
<key>Headers/RCCallIWCallSession.h</key>
|
||||
<data>
|
||||
AnhTDcH3VjceT8E5vwfn4M1KRkE=
|
||||
</data>
|
||||
<key>Headers/RCCallIWDefine.h</key>
|
||||
<data>
|
||||
DAGsL8w84kqw8ZXp2cNbh7QSWLI=
|
||||
</data>
|
||||
<key>Headers/RCCallIWEngine.h</key>
|
||||
<data>
|
||||
Z4zTFQqdlABKiqe5+snC7d6/BpA=
|
||||
</data>
|
||||
<key>Headers/RCCallIWEngineConfig.h</key>
|
||||
<data>
|
||||
yQGCGoe19+myITZLqeO0VadV7Js=
|
||||
</data>
|
||||
<key>Headers/RCCallIWFlutterView.h</key>
|
||||
<data>
|
||||
y2cqUnU8QMNZ3CG0+C2mMNsxzic=
|
||||
</data>
|
||||
<key>Headers/RCCallIWIOSPushConfig.h</key>
|
||||
<data>
|
||||
8qkNfl6i7/7v8+Ff+yCXkSZcbKA=
|
||||
</data>
|
||||
<key>Headers/RCCallIWPushConfig.h</key>
|
||||
<data>
|
||||
Dl/lC2HDVoElj5rdcPDirtFy00I=
|
||||
</data>
|
||||
<key>Headers/RCCallIWUserProfile.h</key>
|
||||
<data>
|
||||
OirfPQvRXiMSA7f7QCyBpmskr8E=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoConfig.h</key>
|
||||
<data>
|
||||
kOdMpo6eHS1xv3wjNG6+ZiTkjLo=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoFrameDelegate.h</key>
|
||||
<data>
|
||||
4E8xM7l79Q0pj+PqnOIaLalKHZ0=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoView.h</key>
|
||||
<data>
|
||||
ibFWGpV35ABCTAhuEtUsgKHQVnw=
|
||||
</data>
|
||||
<key>Headers/RongCallWrapper.h</key>
|
||||
<data>
|
||||
vXZ3cAYx+Hn3GKcucUwV0K4j8DQ=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
Izr+R4U9kf63yZbS/sbtv1Hgxto=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
mB2JsmGuPd2g/QyaXMtdCzdDuzw=
|
||||
</data>
|
||||
<key>RCConfig.plist</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
<key>RongRTCLib.bundle/HwAiVadModel.bin</key>
|
||||
<data>
|
||||
ATcRMel9IwX111oJWJbEEm8fxLw=
|
||||
</data>
|
||||
<key>RongRTCLib.bundle/HwAinrModel.bin</key>
|
||||
<data>
|
||||
B8kB+UwS+Djpk42nGs6PsuZb4i4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/RCCallIWAndroidPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
c8Nr+zXJBvG4EEuUrT1QFmj5fnQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
tUBraHIlNP/nvghXtWtweS8roeTuGXH5le7Gtoqg2lI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWAudioConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
kGPMWb7BecYVlHQ9V+f794nOR4w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
h7YMB2G9xbeDIdlGpjDdy7VeEd1V1lY0bhUhPnmj7do=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWCallSession.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
AnhTDcH3VjceT8E5vwfn4M1KRkE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
47JdoajKNgc8PvI2M1lo7XgKFDap/8zNE5aubhiMO9g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWDefine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
DAGsL8w84kqw8ZXp2cNbh7QSWLI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Txy4g9BC23EsyFZkra0VUfIXAZ+pOnmxcrIhTeyNNSw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWEngine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Z4zTFQqdlABKiqe5+snC7d6/BpA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
N8ZP4WzDTeXJ9tD15nIZiMEXBKA1ndfNuInF3WNd1pE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWEngineConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
yQGCGoe19+myITZLqeO0VadV7Js=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
+LkKAOHRYcPLjKrmOMYPRIr8DULzitIdlJyGE/v7hIo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWFlutterView.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
y2cqUnU8QMNZ3CG0+C2mMNsxzic=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
IgRu9C00s2UBfZL10F56c7rG2Xu3yS1AM1ET+CChUlQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWIOSPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
8qkNfl6i7/7v8+Ff+yCXkSZcbKA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4IZfnNPqAtJn0v1WGY1M4TmPWPwWbaeNWxUf2qNdFKw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Dl/lC2HDVoElj5rdcPDirtFy00I=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
h+XlKn0zxZLWTqirksIReWFIy98pxSzpVOxUcCzgudo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWUserProfile.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
OirfPQvRXiMSA7f7QCyBpmskr8E=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
QmOPdaT/+idE+GEzrr3QR9BAsf0n10xelqc6s0vnOfw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
kOdMpo6eHS1xv3wjNG6+ZiTkjLo=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UOkF0SEprFatUeYdw91eH8BhSBNcYalRGdJV7OeZszw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoFrameDelegate.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
4E8xM7l79Q0pj+PqnOIaLalKHZ0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
eVaF/p0qpzOF6/ryCEJ7Q2gdkyovIwmHM2QRFaFLjrU=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoView.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ibFWGpV35ABCTAhuEtUsgKHQVnw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
jiI7NxMC7CAXlY9mE0LW6YkSMEXIfnjoVS7yDUorUBg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RongCallWrapper.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
vXZ3cAYx+Hn3GKcucUwV0K4j8DQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
TjeCqYh2mGPCDpHUTUAWlH8YPUvjci/ocEqzb+pJWoM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
mB2JsmGuPd2g/QyaXMtdCzdDuzw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
HjxU8CFo4bZWSBFLKJxPfiAlkZdKpuae+1t2Iqu0d+s=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RCConfig.plist</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RongRTCLib.bundle/HwAiVadModel.bin</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ATcRMel9IwX111oJWJbEEm8fxLw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
rI/0N8nw9Ktvh3flHD50aM1unvKAoT4PXCZogPS4lzo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RongRTCLib.bundle/HwAinrModel.bin</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
B8kB+UwS+Djpk42nGs6PsuZb4i4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
wWEpSmpBqk1A1pnvwExjRDLmRm4kLI6s07dug5+9ftg=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// RCCallIWAndroidPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCCallIWImportanceHW) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCCallIWImportanceHWNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCCallIWImportanceHWLow = 1,
|
||||
};
|
||||
|
||||
@interface RCCallIWAndroidPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
Android 平台 Push 唯一标识
|
||||
目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *notificationId;
|
||||
|
||||
/*!
|
||||
小米的渠道 ID
|
||||
该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdMi;
|
||||
|
||||
/*!
|
||||
小米 Large icon 链接
|
||||
Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlMi;
|
||||
|
||||
/*!
|
||||
华为的渠道 ID
|
||||
该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdHW;
|
||||
|
||||
/*!
|
||||
华为通知栏消息右侧大图标 URL
|
||||
如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。
|
||||
图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlHW;
|
||||
|
||||
/*!
|
||||
华为推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWImportanceHW importanceHW;
|
||||
|
||||
/*!
|
||||
华为推送消息分类
|
||||
|
||||
社交通讯:即时通讯[IM],音频、视频通话[VOIP]
|
||||
服务提醒:订阅[SUBSCRIPTION],出行[TRAVEL],健康[HEALTH],工作事项提醒[WORK],帐号动态[ACCOUNT],订单&物流[EXPRESS],财务[FINANCE],系统提示[SYSTEM_REMINDER],邮件[MAIL]
|
||||
资讯营销类:内容资讯/新闻/财经动态/生活资讯/社交动态/调研/其他[MARKETING]
|
||||
营销活动:产品促销/功能推荐/运营活动/MARKETING
|
||||
更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.0
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryHW;
|
||||
|
||||
/*!
|
||||
OPPO 的渠道 ID
|
||||
该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdOPPO;
|
||||
|
||||
/*!
|
||||
VIVO 推送通道类型
|
||||
开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。
|
||||
目前可选值 "0"(运营消息) 和 "1"(系统消息)
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *typeVivo;
|
||||
|
||||
/*!
|
||||
Vivo 推送消息分类
|
||||
|
||||
系统消息分类
|
||||
即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
|
||||
运营消息分类
|
||||
新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
|
||||
更多信息请参考 Vivo 消息分类标准文档: https://dev.vivo.com.cn/documentCenter/doc/359
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.2
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryVivo;
|
||||
|
||||
/*!
|
||||
FCM 通知类型推送时所使用的分组 id
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *collapseKeyFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知类型的推送所使用的通知图片 url
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知的频道 ID
|
||||
该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdFCM;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// RCCallIWAudioConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWAudioConfig : NSObject
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// RCCallIWCallSession.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongCallWrapper/RCCallIWUserProfile.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWCallSession : NSObject
|
||||
|
||||
/*!
|
||||
通话类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWCallType callType;
|
||||
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWMediaType mediaType;
|
||||
|
||||
/*!
|
||||
通话id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *callId;
|
||||
|
||||
/*!
|
||||
通话目标id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
RTC会话唯一标识, 用于 Server API
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *sessionId;
|
||||
|
||||
/*!
|
||||
通话的扩展信息
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *extra;
|
||||
|
||||
/*!
|
||||
通话开始的时间
|
||||
|
||||
@discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。
|
||||
*/
|
||||
@property (nonatomic, readonly) long long startTime;
|
||||
|
||||
/*!
|
||||
通话接通时间
|
||||
*/
|
||||
@property (nonatomic, readonly) long long connectedTime;
|
||||
|
||||
/*!
|
||||
通话结束时间
|
||||
*/
|
||||
@property (nonatomic, readonly) long long endTime;
|
||||
|
||||
/*!
|
||||
当前通话发起者
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *caller;
|
||||
|
||||
/*!
|
||||
邀请当前用户到当前通话的邀请者
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *inviter;
|
||||
|
||||
/*!
|
||||
当前用户
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserProfile *mine;
|
||||
|
||||
/*!
|
||||
当前通话的全部用户列表
|
||||
*/
|
||||
@property (nonatomic, readonly) NSArray<RCCallIWUserProfile *> *users;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,429 @@
|
||||
//
|
||||
// RCCallIWDefine.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#ifndef RCCallIWDefine_h
|
||||
#define RCCallIWDefine_h
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
用户身份类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWUserType) {
|
||||
/*!
|
||||
普通身份
|
||||
*/
|
||||
RCCallIWUserTypeNormal = 1,
|
||||
/*!
|
||||
观察者身份
|
||||
*/
|
||||
RCCallIWUserTypeObserver = 2
|
||||
};
|
||||
|
||||
/*!
|
||||
通话类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCallType) {
|
||||
/*!
|
||||
单聊通话
|
||||
*/
|
||||
RCCallIWCallTypeSingle = 0,
|
||||
/*!
|
||||
群聊通话
|
||||
*/
|
||||
RCCallIWCallTypeGroup = 1
|
||||
};
|
||||
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWMediaType) {
|
||||
/*!
|
||||
音频通话
|
||||
*/
|
||||
RCCallIWMediaTypeAudio = 0,
|
||||
/*!
|
||||
音视频通话
|
||||
*/
|
||||
RCCallIWMediaTypeAudioVideo = 2
|
||||
};
|
||||
|
||||
/*!
|
||||
相机类型
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCamera) {
|
||||
/*!
|
||||
未指定
|
||||
*/
|
||||
RCCallIWCameraNone = -1,
|
||||
/*!
|
||||
前置相机
|
||||
*/
|
||||
RCCallIWCameraFront = 0,
|
||||
/*!
|
||||
后置相机
|
||||
*/
|
||||
RCCallIWCameraBack = 1,
|
||||
};
|
||||
|
||||
/*!
|
||||
网络质量
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWNetworkQuality) {
|
||||
/*!
|
||||
未知
|
||||
*/
|
||||
RCCallIWNetworkQualityUnknown = 0,
|
||||
/*!
|
||||
极好
|
||||
*/
|
||||
RCCallIWNetworkQualityExcellent = 1,
|
||||
/*!
|
||||
好
|
||||
*/
|
||||
RCCallIWNetworkQualityGood = 2,
|
||||
/*!
|
||||
一般
|
||||
*/
|
||||
RCCallIWNetworkQualityPoor = 3,
|
||||
/*!
|
||||
差
|
||||
*/
|
||||
RCCallIWNetworkQualityBad = 4,
|
||||
/*!
|
||||
极差
|
||||
*/
|
||||
RCCallIWNetworkQualityTerrible = 5,
|
||||
};
|
||||
|
||||
/*!
|
||||
视频显示模式
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWViewFitType) {
|
||||
/*!
|
||||
拉伸全屏
|
||||
*/
|
||||
RCCallIWViewFitTypeFill = 0,
|
||||
/*!
|
||||
满屏显示, 等比例填充, 直到填充满整个试图区域,其中一个维度的部分区域会被裁剪
|
||||
*/
|
||||
RCCallIWViewFitTypeCover = 1,
|
||||
/*!
|
||||
完整显示, 填充黑边, 等比例填充,直达一个维度到达区域边界
|
||||
*/
|
||||
RCCallIWViewFitTypeCenter = 2,
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
通话视频参数
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWVideoProfile) {
|
||||
/*!
|
||||
144x256, 15fps, 120~240kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_144_256 = 10,
|
||||
/*!
|
||||
240x240, 15fps, 120~280kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_240 = 20,
|
||||
/*!
|
||||
240x320, 15fps, 120~400kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_320 = 30,
|
||||
/*!
|
||||
360x480, 15fps, 150~650kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_480 = 40,
|
||||
/*!
|
||||
360x640, 15fps, 180~800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_640 = 50,
|
||||
/*!
|
||||
480x640, 15fps, 200~900kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_640 = 60,
|
||||
/*!
|
||||
480x720, 15fps, 200~1000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_720 = 70,
|
||||
/*!
|
||||
720x1280, 15fps, 250~2200kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_720_1280 = 80,
|
||||
/*!
|
||||
1080x1920, 15fps, 400~4000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_1080_1920 = 90,
|
||||
/*!
|
||||
144x256, 30fps, 240~480kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_144_256_HIGH = 11,
|
||||
/*!
|
||||
240x240, 30fps, 240~360kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_240_HIGH = 21,
|
||||
/*!
|
||||
240x320, 30fps, 240~800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_240_320_HIGH = 31,
|
||||
/*!
|
||||
360x480, 30fps, 300~1300kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_480_HIGH = 41,
|
||||
/*!
|
||||
360x640, 30fps, 360~1600kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_360_640_HIGH = 51,
|
||||
/*!
|
||||
480x640, 30fps, 400~1800kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_640_HIGH = 61,
|
||||
/*!
|
||||
480x720, 30fps, 400~2000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_480_720_HIGH = 71,
|
||||
/*!
|
||||
720x1080, 30fps, 500~4400kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_720_1280_HIGH = 81,
|
||||
/*!
|
||||
1080x1920, 30fps, 800~8000kbps
|
||||
*/
|
||||
RCCallIW_VIDEO_PROFILE_1080_1920_HIGH = 91,
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
摄像机方向
|
||||
值与 AVCaptureVideoOrientation 一致
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCCallIWCameraOrientation) {
|
||||
RCCallIWCameraOrientationPortrait = 1,
|
||||
RCCallIWCameraOrientationPortraitUpsideDown = 2,
|
||||
RCCallIWCameraOrientationLandscapeRight = 3,
|
||||
RCCallIWCameraOrientationLandscapeLeft = 4,
|
||||
};
|
||||
|
||||
/*!
|
||||
通话结束原因
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWDisconnectReason) {
|
||||
/*!
|
||||
己方取消已发出的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonCancel = 1,
|
||||
/*!
|
||||
己方拒绝收到的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonReject = 2,
|
||||
/*!
|
||||
己方挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonHangup = 3,
|
||||
/*!
|
||||
己方忙碌
|
||||
*/
|
||||
RCCallIWDisconnectReasonBusyLine = 4,
|
||||
/*!
|
||||
己方未接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonNoResponse = 5,
|
||||
/*!
|
||||
己方不支持当前引擎
|
||||
*/
|
||||
RCCallIWDisconnectReasonEngineUnsupported = 6,
|
||||
/*!
|
||||
己方网络出错
|
||||
*/
|
||||
RCCallIWDisconnectReasonNetworkError = 7,
|
||||
/*!
|
||||
己方获取媒体资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonResourceError = 8,
|
||||
/*!
|
||||
己方发布资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonPublishError = 9,
|
||||
/*!
|
||||
己方订阅资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonSubscribeError = 10,
|
||||
/*!
|
||||
对方取消已发出的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteCancel = 11,
|
||||
/*!
|
||||
对方拒绝收到的通话请求
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteReject = 12,
|
||||
/*!
|
||||
通话过程对方挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteHangup = 13,
|
||||
/*!
|
||||
对方忙碌
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteBusyLine = 14,
|
||||
/*!
|
||||
对方未接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteNoResponse = 15,
|
||||
/*!
|
||||
对方不支持当前引擎
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteEngineUnsupported = 16,
|
||||
/*!
|
||||
对方网络错误
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteNetworkError = 17,
|
||||
/*!
|
||||
对方获取媒体资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteResourceError = 18,
|
||||
/*!
|
||||
对方发布资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemotePublishError = 19,
|
||||
/*!
|
||||
对方订阅资源失败
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteSubscribeError = 20,
|
||||
/*!
|
||||
己方其他端已加入新通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonKickedByOtherCall = 21,
|
||||
/*!
|
||||
己方其他端已在通话中
|
||||
*/
|
||||
RCCallIWDisconnectReasonInOtherCall = 22,
|
||||
/*!
|
||||
己方已被禁止通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonKickedByServer = 23,
|
||||
/*!
|
||||
对方其他端已加入新通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteKickedByOtherCall = 24,
|
||||
/*!
|
||||
对方其他端已在通话中
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteInOtherCall = 25,
|
||||
/*!
|
||||
对方已被禁止通话
|
||||
*/
|
||||
RCCallIWDisconnectReasonRemoteKickedByServer = 26,
|
||||
/*!
|
||||
己方其他端已接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonAcceptByOtherClient = 27,
|
||||
/*!
|
||||
己方其他端已挂断
|
||||
*/
|
||||
RCCallIWDisconnectReasonHangupByOtherClient = 28,
|
||||
/*!
|
||||
己方被对方加入黑名单
|
||||
*/
|
||||
RCCallIWDisconnectReasonAddToBlackList = 29,
|
||||
/*!
|
||||
音视频服务已关闭
|
||||
*/
|
||||
RCCallIWDisconnectReasonMediaServerClosed = 30,
|
||||
/*!
|
||||
己方被降级为观察者
|
||||
*/
|
||||
RCCallIWDisconnectReasonDegrade = 31,
|
||||
/*!
|
||||
己方摄像头初始化错误,可能是没有打开使用摄像头权限
|
||||
*/
|
||||
RCCallIWDisconnectReasonInitVideoError = 32,
|
||||
/*!
|
||||
其他端已经接听
|
||||
*/
|
||||
RCCallIWDisconnectReasonOtherDeviceHadAccepted = 33,
|
||||
/*!
|
||||
im ipc服务已断开
|
||||
*/
|
||||
RCCallIWDisconnectReasonServiceDisconnected = 34
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
通话错误类型
|
||||
*/
|
||||
typedef NS_ENUM (NSInteger, RCCallIWErrorCode) {
|
||||
/*!
|
||||
成功
|
||||
*/
|
||||
RCCallIWSuccess = 0,
|
||||
/*!
|
||||
开通的音视频服务没有及时生效或音视频服务已关闭,请等待3-5小时后重新安装应用或开启音视频服务再进行测试
|
||||
*/
|
||||
RCCallIWEngineNotFound = 1,
|
||||
/*!
|
||||
网络不可用
|
||||
*/
|
||||
RCCallIWNetworkUnavailable = 2,
|
||||
/*!
|
||||
已经处于通话中了
|
||||
*/
|
||||
RCCallIWOneCallExisted = 3,
|
||||
/*!
|
||||
无效操作
|
||||
*/
|
||||
RCCallIWOperationUnavailable = 4,
|
||||
/*!
|
||||
参数错误
|
||||
*/
|
||||
RCCallIWInvalidParam = 5,
|
||||
/*!
|
||||
网络不稳定
|
||||
*/
|
||||
RCCallIWNetworkUnstable = 6,
|
||||
/*!
|
||||
媒体服务请求失败
|
||||
*/
|
||||
RCCallIWMediaRequestFailed = 7,
|
||||
/*!
|
||||
媒体服务初始化失败
|
||||
*/
|
||||
RCCallIWMediaServerNotReady = 8,
|
||||
/*!
|
||||
媒体服务未初始化
|
||||
*/
|
||||
RCCallIWMediaServerNotInitialized = 9,
|
||||
/*!
|
||||
媒体服务请求超时
|
||||
*/
|
||||
RCCallIWMediaRequestTimeout = 10,
|
||||
/*!
|
||||
未知的媒体服务错误
|
||||
*/
|
||||
RCCallIWMediaUnkownError = 11,
|
||||
/*!
|
||||
已被禁止通话
|
||||
*/
|
||||
RCCallIWMediaKickedByServerError = 12,
|
||||
/*!
|
||||
音视频服务已关闭
|
||||
*/
|
||||
RCCallIWMediaServerClosedError = 13,
|
||||
/*!
|
||||
音视频发布资源失败
|
||||
*/
|
||||
RCCallIWMediaServerPublishError = 14,
|
||||
/*!
|
||||
音视频订阅资源失败
|
||||
*/
|
||||
RCCallIWMediaServerSubscribeError = 15,
|
||||
/*!
|
||||
其他端已在通话中错误
|
||||
*/
|
||||
RCCallIWMediaJoinRoomRefuseError = 16
|
||||
};
|
||||
|
||||
#endif /* RCCallIWDefine_h */
|
||||
@@ -0,0 +1,449 @@
|
||||
//
|
||||
// RCCallIWEngine.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
@class RCCallIWEngineConfig;
|
||||
@class RCCallIWPushConfig;
|
||||
@class RCCallIWAudioConfig;
|
||||
@class RCCallIWVideoConfig;
|
||||
@class RCCallIWCallSession;
|
||||
@class RCCallIWUserProfile;
|
||||
@class RCCallIWBeautyOption;
|
||||
|
||||
@protocol RCCallIWEngineDelegate;
|
||||
@protocol RCCallIWSampleBufferVideoFrameDelegate;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWEngine : NSObject
|
||||
|
||||
/*!
|
||||
获取引擎实例
|
||||
|
||||
@return 引擎实例
|
||||
*/
|
||||
+ (RCCallIWEngine *)sharedInstance;
|
||||
|
||||
/*!
|
||||
配置引擎
|
||||
|
||||
@param config 引擎配置
|
||||
*/
|
||||
- (void)setEngineConfig:(nullable RCCallIWEngineConfig *)config;
|
||||
|
||||
/*!
|
||||
配置推送
|
||||
|
||||
@param callPushConfig 呼叫推送配置
|
||||
@param hangupPushConfig 挂断推送配置
|
||||
*/
|
||||
- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig
|
||||
hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig;
|
||||
|
||||
/*!
|
||||
配置推送
|
||||
|
||||
@param callPushConfig 呼叫推送配置
|
||||
@param hangupPushConfig 挂断推送配置
|
||||
@param enableApplePushKit 设置是否使用苹果 PushKit 推送, YES 使用, NO 不使用
|
||||
@discussion
|
||||
是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑,
|
||||
如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑.
|
||||
*/
|
||||
- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig
|
||||
hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig
|
||||
enableApplePushKit:(BOOL)enableApplePushKit;
|
||||
|
||||
/*!
|
||||
配置音频
|
||||
|
||||
@param config 音频配置
|
||||
*/
|
||||
- (void)setAudioConfig:(nullable RCCallIWAudioConfig *)config;
|
||||
|
||||
/*!
|
||||
配置视频
|
||||
|
||||
@param config 视频配置
|
||||
*/
|
||||
- (void)setVideoConfig:(nullable RCCallIWVideoConfig *)config;
|
||||
|
||||
/*!
|
||||
配置监听
|
||||
|
||||
@param delegate 监听代理
|
||||
*/
|
||||
- (void)setEngineDelegate:(nullable NSObject<RCCallIWEngineDelegate> *)delegate;
|
||||
|
||||
/*!
|
||||
拨打电话-单聊
|
||||
|
||||
@param userId 被叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前Call Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)userId
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-单聊
|
||||
|
||||
@param userId 被叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)userId
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(nullable NSArray<NSString *> *)observerUserIds
|
||||
type:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
拨打电话-群聊
|
||||
|
||||
@param groupId 群组Id
|
||||
@param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫
|
||||
@param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId
|
||||
@param type 发起的通话媒体类型
|
||||
@param extra 附件信息
|
||||
@discussion
|
||||
如果type为音视频,直接打开默认(前置)摄像头。
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)startCall:(NSString *)groupId
|
||||
userIds:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(nullable NSArray<NSString *> *)observerUserIds
|
||||
type:(RCCallIWMediaType)type
|
||||
extra:(nullable NSString *)extra;
|
||||
|
||||
/*!
|
||||
获取当前通话 Session
|
||||
|
||||
@return 当前通话 Session
|
||||
*/
|
||||
- (RCCallIWCallSession *)getCurrentCallSession;
|
||||
|
||||
/*!
|
||||
接电话
|
||||
|
||||
@discussion
|
||||
如果呼入类型为语音通话,即接受语音通话,如果呼入类型为视频通话,即接受视频通话,打开默认(前置)摄像头。
|
||||
观察者不开启摄像头。
|
||||
*/
|
||||
- (void)accept;
|
||||
|
||||
/*!
|
||||
挂断电话
|
||||
*/
|
||||
- (void)hangup;
|
||||
|
||||
/*!
|
||||
麦克风控制
|
||||
|
||||
@param enable YES 开启麦克风,NO 关闭麦克风
|
||||
*/
|
||||
- (void)enableMicrophone:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
获取当前麦克风状态
|
||||
|
||||
@return 当前麦克风是否开启
|
||||
*/
|
||||
- (BOOL)isEnableMicrophone;
|
||||
|
||||
/*!
|
||||
扬声器控制
|
||||
|
||||
@param enable YES 开启扬声器,NO 关闭扬声器
|
||||
*/
|
||||
- (void)enableSpeaker:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
获取当前扬声器状态
|
||||
|
||||
@return 当前扬声器是否开启
|
||||
*/
|
||||
- (BOOL)isEnableSpeaker;
|
||||
|
||||
/*!
|
||||
摄像头控制
|
||||
|
||||
@param enable YES 开启摄像头,NO 关闭摄像头
|
||||
*/
|
||||
- (void)enableCamera:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
摄像头控制
|
||||
|
||||
@param enable YES 开启摄像头,NO 关闭摄像头
|
||||
@param camera 指定摄像头
|
||||
*/
|
||||
- (void)enableCamera:(BOOL)enable camera:(RCCallIWCamera)camera;
|
||||
|
||||
/*!
|
||||
获取当前摄像头状态
|
||||
|
||||
@return 当前摄像头是否开启
|
||||
*/
|
||||
- (BOOL)isEnableCamera;
|
||||
|
||||
/*!
|
||||
获取当前摄像头
|
||||
|
||||
@return 当前摄像头
|
||||
*/
|
||||
- (RCCallIWCamera)currentCamera;
|
||||
|
||||
/*!
|
||||
翻转摄像头
|
||||
*/
|
||||
- (void)switchCamera;
|
||||
|
||||
/*!
|
||||
设置预览窗口
|
||||
|
||||
@param userId 用户id
|
||||
@param view 视频预览视图
|
||||
*/
|
||||
- (void)setVideoView:(NSString *)userId
|
||||
view:(UIView *)view;
|
||||
|
||||
/*!
|
||||
设置预览窗口
|
||||
|
||||
@param userId 用户id
|
||||
@param view 视频预览视图
|
||||
@param fit 视频显示模式
|
||||
*/
|
||||
- (void)setVideoView:(NSString *)userId
|
||||
view:(UIView *)view
|
||||
fit:(RCCallIWViewFitType)fit;
|
||||
|
||||
/*!
|
||||
修改通话媒体类型
|
||||
|
||||
@param type 通话媒体类型
|
||||
*/
|
||||
- (void)changeMediaType:(RCCallIWMediaType)type;
|
||||
|
||||
/*!
|
||||
邀请用户
|
||||
|
||||
@param userIds 被邀请用户id列表
|
||||
*/
|
||||
- (void)inviteUsers:(NSArray<NSString *> *)userIds;
|
||||
|
||||
/*!
|
||||
邀请用户
|
||||
|
||||
@param userIds 被邀请用户id列表
|
||||
@param observerUserIds 被邀请观察者id列表
|
||||
*/
|
||||
- (void)inviteUsers:(NSArray<NSString *> *)userIds
|
||||
observerUserIds:(NSArray<NSString *> *)observerUserIds;
|
||||
|
||||
- (void)setLocalVideoProcessedDelegate:(id<RCCallIWSampleBufferVideoFrameDelegate>)delegate;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@protocol RCCallIWEngineDelegate <NSObject>
|
||||
|
||||
@required
|
||||
/*!
|
||||
接收到通话呼入的回调
|
||||
|
||||
@param session 通话Session
|
||||
*/
|
||||
- (void)didReceiveCall:(RCCallIWCallSession *)session;
|
||||
|
||||
/*!
|
||||
通话已接通
|
||||
*/
|
||||
- (void)callDidConnect;
|
||||
|
||||
/*!
|
||||
通话已结束
|
||||
|
||||
@param reason 结束原因
|
||||
*/
|
||||
- (void)callDidDisconnect:(RCCallIWDisconnectReason)reason;
|
||||
|
||||
/*!
|
||||
对端用户加入了通话
|
||||
|
||||
@param user 对端用户信息
|
||||
*/
|
||||
- (void)remoteUserDidJoin:(RCCallIWUserProfile *)user;
|
||||
|
||||
/*!
|
||||
对端用户挂断
|
||||
|
||||
@param userId 对端用户信息
|
||||
@param reason 挂断原因
|
||||
*/
|
||||
- (void)remoteUserDidLeave:(NSString *)userId
|
||||
reason:(RCCallIWDisconnectReason)reason;
|
||||
|
||||
|
||||
@optional
|
||||
/*!
|
||||
接收到通话呼入的远程通知的回调
|
||||
*/
|
||||
- (void)didReceiveCallRemoteNotification:(NSString *)callId
|
||||
inviterUserId:(NSString *)inviterUserId
|
||||
mediaType:(RCCallIWMediaType)mediaType
|
||||
userIdList:(NSArray *)userIdList
|
||||
userDict:(NSDictionary *)userDict
|
||||
isVoIPPush:(BOOL)isVoIPPush
|
||||
pushConfig:(RCCallIWPushConfig *)pushConfig;
|
||||
|
||||
/*!
|
||||
接收到取消通话的远程通知的回调
|
||||
*/
|
||||
- (void)didCancelCallRemoteNotification:(NSString *)callId
|
||||
inviterUserId:(NSString *)inviterUserId
|
||||
mediaType:(RCCallIWMediaType)mediaType
|
||||
userIdList:(NSArray *)userIdList
|
||||
pushConfig:(RCCallIWPushConfig *)pushConfig
|
||||
isRemoteCancel:(BOOL)isRemoteCancel;
|
||||
|
||||
/*!
|
||||
开启/关闭摄像头的回调
|
||||
*/
|
||||
- (void)didEnableCamera:(RCCallIWCamera)camera
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
切换摄像头的回调
|
||||
|
||||
@param camera 当前选择的摄像头
|
||||
*/
|
||||
- (void)didSwitchCamera:(RCCallIWCamera)camera;
|
||||
|
||||
/*!
|
||||
通话出现错误的回调
|
||||
*/
|
||||
- (void)callDidError:(RCCallIWErrorCode)code;
|
||||
|
||||
/*!
|
||||
开始呼叫通话的回调
|
||||
*/
|
||||
- (void)callDidMake;
|
||||
|
||||
/*!
|
||||
对端用户正在振铃
|
||||
*/
|
||||
- (void)remoteUserDidRing:(NSString *)userId;
|
||||
|
||||
/*!
|
||||
有用户被邀请加入通话
|
||||
*/
|
||||
- (void)remoteUserDidInvite:(NSString *)userId
|
||||
mediaType:(RCCallIWMediaType)mediaType;
|
||||
|
||||
/*!
|
||||
对端用户切换了媒体类型
|
||||
*/
|
||||
- (void)remoteUserDidChangeMediaType:(RCCallIWUserProfile *)user
|
||||
mediaType:(RCCallIWMediaType)mediaType;
|
||||
|
||||
/*!
|
||||
对端用户开启或关闭了麦克风的状态
|
||||
*/
|
||||
- (void)remoteUserDidChangeMicrophoneState:(RCCallIWUserProfile *)user
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
对端用户开启或关闭了摄像头的状态
|
||||
*/
|
||||
- (void)remoteUserDidChangeCameraState:(RCCallIWUserProfile *)user
|
||||
enable:(BOOL)enable;
|
||||
|
||||
/*!
|
||||
当前通话网络状态的回调,该回调方法每秒触发一次
|
||||
@param user 用户信息
|
||||
@param quality 网络质量
|
||||
@discussion
|
||||
如果user是本端用户, quality代表上行网络质量
|
||||
如果user是远端用户, quality代表下行网络质量
|
||||
*/
|
||||
- (void)user:(RCCallIWUserProfile *)user networkQuality:(RCCallIWNetworkQuality)quality;
|
||||
|
||||
/*!
|
||||
当前通话某用户声音音量回调,该回调方法每两秒触发一次
|
||||
@param user 用户信息
|
||||
@param volume 声音音量
|
||||
@discussion
|
||||
声音级别: 0~9, 0为无声, 依次变大
|
||||
如果user是本端用户, volume代表发送音量
|
||||
如果user是远端用户, volume代表接收音量
|
||||
*/
|
||||
- (void)user:(RCCallIWUserProfile *)user audioVolume:(int)volume;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// RCCallIWEngineConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
/*!
|
||||
引擎配置
|
||||
*/
|
||||
@interface RCCallIWEngineConfig : NSObject
|
||||
/*!
|
||||
开启通话记录 默认NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL enableCallSummary;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWFlutterView.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by 潘铭达 on 2021/6/16.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCCallIWFlutterViewDelegate <NSObject>
|
||||
|
||||
- (void)changeSize:(int)width height:(int)height;
|
||||
|
||||
- (void)changeRotation:(int)rotation;
|
||||
|
||||
- (void)firstFrameRendered;
|
||||
|
||||
- (void)frameRendered;
|
||||
|
||||
// 当原生层摄像头进行操作的时候 通知 Flutter 层的 view 进行视图的镜像操作
|
||||
- (void)onMirrorChanged:(BOOL)mirror;
|
||||
|
||||
@end
|
||||
|
||||
@interface RCCallIWFlutterView : NSObject
|
||||
|
||||
@property (nonatomic, weak) id<RCCallIWFlutterViewDelegate> textureViewDelegate;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)new NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE;
|
||||
|
||||
+ (RCCallIWFlutterView *)create;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWIOSPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWIOSPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
iOS 平台通知栏分组 ID
|
||||
相同的 thread-id 推送分为一组
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *threadId;
|
||||
|
||||
/*!
|
||||
iOS 标识推送的类型
|
||||
如果不设置后台默认取消息类型字符串,如 RC:TxtMsg
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *category;
|
||||
|
||||
/*!
|
||||
iOS 平台通知覆盖 ID
|
||||
apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *apnsCollapseId;
|
||||
|
||||
/*!
|
||||
iOS 富文本推送内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *richMediaUri;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// RCCallIWPushConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWIOSPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAndroidPushConfig.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
推送配置
|
||||
*/
|
||||
@interface RCCallIWPushConfig : NSObject
|
||||
|
||||
/*!
|
||||
是否屏蔽通知标题
|
||||
YES: 不显示通知标题
|
||||
NO: 显示通知标题
|
||||
|
||||
@discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。
|
||||
@discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disableTitle;
|
||||
|
||||
/*!
|
||||
推送标题
|
||||
如果没有设置,会使用下面的默认标题显示规则
|
||||
默认标题显示规则:
|
||||
内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
|
||||
自定义消息:默认不显示标题。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *title;
|
||||
|
||||
/*!
|
||||
推送内容
|
||||
优先使用 MessagePushConfig 的 pushContent,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushContent。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *content;
|
||||
|
||||
/*!
|
||||
远程推送附加信息
|
||||
优先使用 MessagePushConfig 的 pushData,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushData。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *data;
|
||||
|
||||
/*!
|
||||
是否强制显示通知详情
|
||||
当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL forceShowDetailContent;
|
||||
|
||||
/*!
|
||||
推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。
|
||||
注:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *templateId;
|
||||
|
||||
/*!
|
||||
iOS 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCCallIWIOSPushConfig *iOSConfig;
|
||||
|
||||
/*!
|
||||
Android 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCCallIWAndroidPushConfig *androidConfig;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// RCCallIWUserProfile.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWUserProfile : NSObject
|
||||
/*!
|
||||
用户身份类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWUserType userType;
|
||||
/*!
|
||||
通话媒体类型
|
||||
*/
|
||||
@property (nonatomic, readonly) RCCallIWMediaType mediaType;
|
||||
/*!
|
||||
用户id
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *userId;
|
||||
/*!
|
||||
用户的通话媒体连接ID
|
||||
*/
|
||||
@property (nonatomic, readonly) NSString *mediaId;
|
||||
/*!
|
||||
用户是否开启摄像头
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL enableCamera;
|
||||
/*!
|
||||
用户是否开启麦克风
|
||||
*/
|
||||
@property (nonatomic, readonly) BOOL enableMicrophone;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,40 @@
|
||||
//
|
||||
// RCCallIWVideoConfig.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/14.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWVideoConfig : NSObject
|
||||
|
||||
/*!
|
||||
视频配置
|
||||
默认值 RCCallIW_VIDEO_PROFILE_720_1280
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWVideoProfile profile;
|
||||
/*!
|
||||
摄像头
|
||||
默认值 RCCallIWCameraFront
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWCamera defaultCamera;
|
||||
/*!
|
||||
相机方向
|
||||
默认值 RCCallIWCameraOrientationPortrait
|
||||
*/
|
||||
@property (nonatomic, assign) RCCallIWCameraOrientation cameraOrientation;
|
||||
|
||||
/*!
|
||||
本地预览是否镜像
|
||||
|
||||
前置摄像头默认: YES,后置摄像头默认: NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL isPreviewMirror;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// RCCallIWVideoFrameDelegate.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by 潘铭达 on 2021/12/27.
|
||||
//
|
||||
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCCallIWSampleBufferVideoFrameDelegate <NSObject>
|
||||
|
||||
- (void)onPixelBuffer:(CVPixelBufferRef)pixelBuffer;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// RCCallIWVideoView.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2023/5/12.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <RongRTCLib/RongRTCLib.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCCallIWVideoView : UIView
|
||||
|
||||
@property (nonatomic, weak, readonly) RCRTCVideoView *videoView;
|
||||
// 预览是否镜像 (最终设置的是原生 videoView,所以要注意设置的时机)
|
||||
@property (nonatomic, assign) BOOL isMirror;
|
||||
// 原生 videoView 添加完成
|
||||
@property (nonatomic, copy) void(^nativeVideoViewDidAdd)(RCRTCVideoView *videoView);
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// RongCallWrapper.h
|
||||
// RongCallWrapper
|
||||
//
|
||||
// Created by RongCloud on 2021/7/12.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
//! Project version number for RongCallWrapper.
|
||||
FOUNDATION_EXPORT double RongCallWrapperVersionNumber;
|
||||
|
||||
//! Project version string for RongCallWrapper.
|
||||
FOUNDATION_EXPORT const unsigned char RongCallWrapperVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <RongCallWrapper/PublicHeader.h>
|
||||
#import <RongCallWrapper/RCCallIWDefine.h>
|
||||
#import <RongCallWrapper/RCCallIWEngine.h>
|
||||
#import <RongCallWrapper/RCCallIWCallSession.h>
|
||||
#import <RongCallWrapper/RCCallIWEngineConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAudioConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWVideoConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWIOSPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWAndroidPushConfig.h>
|
||||
#import <RongCallWrapper/RCCallIWUserProfile.h>
|
||||
#import <RongCallWrapper/RCCallIWFlutterView.h>
|
||||
#import <RongCallWrapper/RCCallIWVideoFrameDelegate.h>
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
framework module RongCallWrapper {
|
||||
umbrella header "RongCallWrapper.h"
|
||||
export *
|
||||
|
||||
module * { export * }
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Location</key>
|
||||
<dict>
|
||||
<key>LocationImageQuality</key>
|
||||
<real>0.7</real>
|
||||
<key>LocationImageWidth</key>
|
||||
<string>480</string>
|
||||
<key>LocationImageHeight</key>
|
||||
<string>240</string>
|
||||
</dict>
|
||||
<key>File</key>
|
||||
<dict>
|
||||
<key>RelativePath</key>
|
||||
<string>Documents/MyFile</string>
|
||||
<key>MaxRangeUnit</key>
|
||||
<real>1048576</real>
|
||||
</dict>
|
||||
<key>Voice</key>
|
||||
<dict>
|
||||
<key>AudioEncodingBitRate</key>
|
||||
<real>7950</real>
|
||||
</dict>
|
||||
<key>Image</key>
|
||||
<dict>
|
||||
<key>ThumbnailQuality</key>
|
||||
<string>0.3</string>
|
||||
<key>ThumbnailMaxSize</key>
|
||||
<string>240</string>
|
||||
<key>ThumbnailMinSize</key>
|
||||
<string>100</string>
|
||||
<key>ImageQuality</key>
|
||||
<real>0.85</real>
|
||||
<key>ImageWidth</key>
|
||||
<integer>1080</integer>
|
||||
<key>ImageHeight</key>
|
||||
<integer>1080</integer>
|
||||
</dict>
|
||||
<key>CustomerService</key>
|
||||
<dict>
|
||||
<key>SuspendWhenLeave</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Download</key>
|
||||
<dict>
|
||||
<key>DownloadSliceSize</key>
|
||||
<real>20971520</real>
|
||||
</dict>
|
||||
<key>Sight</key>
|
||||
<dict>
|
||||
<key>SightCompressWidth</key>
|
||||
<integer>540</integer>
|
||||
<key>SightCompressHeight</key>
|
||||
<integer>960</integer>
|
||||
</dict>
|
||||
<key>HeartBeatInterval</key>
|
||||
<integer>15</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,372 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/RCCallIWAndroidPushConfig.h</key>
|
||||
<data>
|
||||
c8Nr+zXJBvG4EEuUrT1QFmj5fnQ=
|
||||
</data>
|
||||
<key>Headers/RCCallIWAudioConfig.h</key>
|
||||
<data>
|
||||
kGPMWb7BecYVlHQ9V+f794nOR4w=
|
||||
</data>
|
||||
<key>Headers/RCCallIWCallSession.h</key>
|
||||
<data>
|
||||
AnhTDcH3VjceT8E5vwfn4M1KRkE=
|
||||
</data>
|
||||
<key>Headers/RCCallIWDefine.h</key>
|
||||
<data>
|
||||
DAGsL8w84kqw8ZXp2cNbh7QSWLI=
|
||||
</data>
|
||||
<key>Headers/RCCallIWEngine.h</key>
|
||||
<data>
|
||||
Z4zTFQqdlABKiqe5+snC7d6/BpA=
|
||||
</data>
|
||||
<key>Headers/RCCallIWEngineConfig.h</key>
|
||||
<data>
|
||||
yQGCGoe19+myITZLqeO0VadV7Js=
|
||||
</data>
|
||||
<key>Headers/RCCallIWFlutterView.h</key>
|
||||
<data>
|
||||
y2cqUnU8QMNZ3CG0+C2mMNsxzic=
|
||||
</data>
|
||||
<key>Headers/RCCallIWIOSPushConfig.h</key>
|
||||
<data>
|
||||
8qkNfl6i7/7v8+Ff+yCXkSZcbKA=
|
||||
</data>
|
||||
<key>Headers/RCCallIWPushConfig.h</key>
|
||||
<data>
|
||||
Dl/lC2HDVoElj5rdcPDirtFy00I=
|
||||
</data>
|
||||
<key>Headers/RCCallIWUserProfile.h</key>
|
||||
<data>
|
||||
OirfPQvRXiMSA7f7QCyBpmskr8E=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoConfig.h</key>
|
||||
<data>
|
||||
kOdMpo6eHS1xv3wjNG6+ZiTkjLo=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoFrameDelegate.h</key>
|
||||
<data>
|
||||
4E8xM7l79Q0pj+PqnOIaLalKHZ0=
|
||||
</data>
|
||||
<key>Headers/RCCallIWVideoView.h</key>
|
||||
<data>
|
||||
ibFWGpV35ABCTAhuEtUsgKHQVnw=
|
||||
</data>
|
||||
<key>Headers/RongCallWrapper.h</key>
|
||||
<data>
|
||||
vXZ3cAYx+Hn3GKcucUwV0K4j8DQ=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
eSwRbQaZaWWJvuK9mFRGBJ74yy0=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
mB2JsmGuPd2g/QyaXMtdCzdDuzw=
|
||||
</data>
|
||||
<key>RCConfig.plist</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
<key>RongRTCLib.bundle/HwAiVadModel.bin</key>
|
||||
<data>
|
||||
ATcRMel9IwX111oJWJbEEm8fxLw=
|
||||
</data>
|
||||
<key>RongRTCLib.bundle/HwAinrModel.bin</key>
|
||||
<data>
|
||||
B8kB+UwS+Djpk42nGs6PsuZb4i4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/RCCallIWAndroidPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
c8Nr+zXJBvG4EEuUrT1QFmj5fnQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
tUBraHIlNP/nvghXtWtweS8roeTuGXH5le7Gtoqg2lI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWAudioConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
kGPMWb7BecYVlHQ9V+f794nOR4w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
h7YMB2G9xbeDIdlGpjDdy7VeEd1V1lY0bhUhPnmj7do=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWCallSession.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
AnhTDcH3VjceT8E5vwfn4M1KRkE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
47JdoajKNgc8PvI2M1lo7XgKFDap/8zNE5aubhiMO9g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWDefine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
DAGsL8w84kqw8ZXp2cNbh7QSWLI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Txy4g9BC23EsyFZkra0VUfIXAZ+pOnmxcrIhTeyNNSw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWEngine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Z4zTFQqdlABKiqe5+snC7d6/BpA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
N8ZP4WzDTeXJ9tD15nIZiMEXBKA1ndfNuInF3WNd1pE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWEngineConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
yQGCGoe19+myITZLqeO0VadV7Js=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
+LkKAOHRYcPLjKrmOMYPRIr8DULzitIdlJyGE/v7hIo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWFlutterView.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
y2cqUnU8QMNZ3CG0+C2mMNsxzic=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
IgRu9C00s2UBfZL10F56c7rG2Xu3yS1AM1ET+CChUlQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWIOSPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
8qkNfl6i7/7v8+Ff+yCXkSZcbKA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4IZfnNPqAtJn0v1WGY1M4TmPWPwWbaeNWxUf2qNdFKw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWPushConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Dl/lC2HDVoElj5rdcPDirtFy00I=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
h+XlKn0zxZLWTqirksIReWFIy98pxSzpVOxUcCzgudo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWUserProfile.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
OirfPQvRXiMSA7f7QCyBpmskr8E=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
QmOPdaT/+idE+GEzrr3QR9BAsf0n10xelqc6s0vnOfw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoConfig.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
kOdMpo6eHS1xv3wjNG6+ZiTkjLo=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UOkF0SEprFatUeYdw91eH8BhSBNcYalRGdJV7OeZszw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoFrameDelegate.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
4E8xM7l79Q0pj+PqnOIaLalKHZ0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
eVaF/p0qpzOF6/ryCEJ7Q2gdkyovIwmHM2QRFaFLjrU=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCCallIWVideoView.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ibFWGpV35ABCTAhuEtUsgKHQVnw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
jiI7NxMC7CAXlY9mE0LW6YkSMEXIfnjoVS7yDUorUBg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RongCallWrapper.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
vXZ3cAYx+Hn3GKcucUwV0K4j8DQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
TjeCqYh2mGPCDpHUTUAWlH8YPUvjci/ocEqzb+pJWoM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
mB2JsmGuPd2g/QyaXMtdCzdDuzw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
HjxU8CFo4bZWSBFLKJxPfiAlkZdKpuae+1t2Iqu0d+s=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RCConfig.plist</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RongRTCLib.bundle/HwAiVadModel.bin</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ATcRMel9IwX111oJWJbEEm8fxLw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
rI/0N8nw9Ktvh3flHD50aM1unvKAoT4PXCZogPS4lzo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RongRTCLib.bundle/HwAinrModel.bin</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
B8kB+UwS+Djpk42nGs6PsuZb4i4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
wWEpSmpBqk1A1pnvwExjRDLmRm4kLI6s07dug5+9ftg=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user