服务器录制和本地录制
最近更新时间:2021-02-05 16:29:05
startServerRecord
简要描述
- 开启服务器录制
我们提供了课程录制功能,可以完全的还原上课过程。调用此接口可以,录制课程。
- 开启录制后,回调:录制状态的回调
-(void)roomManagerOnServerRecordStateChanged:(TKRecordState)state fromID:(NSString )peerID extension:(NSDictionary )extension
接口名称
| - (int)startServerRecord:(NSDictionary<NSString *, id> *)spec
expiresabs:(NSInteger)expiresabs
expires:(NSInteger)expires;
|
参数
参数名 |
必填 |
类型 |
说明 |
spec |
是 |
NSDictionary |
录制参数 |
expiresabs |
是 |
NSInteger |
录制时长,0:表示不限时长,直到调用停止录制 |
expires |
是 |
NSInteger |
结束录制时的时间戳,0:表示不设置结束时间 |
方法示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | 「
---------------------------------standard模式---------------------------
standard模式标准常规录制,为默认模式
NSDictionary *spec = @{@"recordMode" : @"standard"};
---------------------------------mix模式----------------------------------
mix模式自定义混流录制,需要传入以下参数
可以针对用户对象进行自定义布局样式
NSDictionary *userVideoLayout = @{
@{@"uid": @"1131223463fff", // 用户 ID,若为桌面共享的视频,此 ID 为'用户ID:screen'
@"x_coord": @(0.1), // 窗口x坐标,取值为相对于整个视频宽度百分比
@"y_coord": @(0.1), // 窗口y坐标,取值为相对于整个视频高度百分比
@"width": @(0.18), // 窗口宽,取值为相对于整个视频宽度百分比
@"height": @(0.24), // 窗口高,取值为相对于整个视频高度百分比
@"alpha": @(1), // 窗口透明度
@"play_video" : @(YES), //缺省值 YES;YES:显示视频窗口,NO:不显示视频窗口
@"play_audio" : @(YES), //缺省值 YES;YES:播放音频,NO:不播放音频
}
};
NSMutableArray *videoLayoutList = [NSMutableArray array];
[videoLayoutList addObject:userVideoLayout];
NSDictionary *customConfigParams = @{
@"noStreamTimeout_s" : @(30), //开始混流后,房间中没有以下指定用户的流,30秒后停止混流
@"backgroundColor" : @"#0d69fb", //为兼容,若指定,则优先级高于外层背景色配置
@"videoLayout" : videoLayoutList
};
NSDictionary *spec = @{@"recordMode" : @"mix",
@"mixStreamParams" : @{
@"template": @2, // 必选,混流布局模板ID,0表示等分布局; 1表示画中画布局; 2表示自定义布局
@"backgroundColor": @"#0d69fb", // 颜色值
@"customConfig": customConfigParams
} // 若 template 为2,则自定义布局时生效,包括布局参数和其他附加参数;template 为2以外的其他值,此参数无效,可不填
};
」
⚠️ 注:spec 为 nil,默认standard模式
[_roomMgr startServerRecord:spec
expiresabs:0
expires:0];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
stopServerRecord
简要描述
- 停止服务器录制
接口名称
- - (int)stopServerRecord;
方法示例
| [_roomMgr stopServerRecord];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
pauseServerRecord
简要描述
- 暂停服务器录制
接口名称
- - (int)pauseServerRecord;
方法示例
| [_roomMgr pauseServerRecord];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
resumeServerRecord
简要描述
- 恢复服务器录制
接口名称
- - (int)resumeServerRecord;
方法示例
| [_roomMgr resumeServerRecord];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
startAudioRecord
简要描述
- 开启本地音频录制
会录制房间所有的声音数据,然后保存到沙盒中。
接口名称
- - (int)startAudioRecord:(NSString *)sandboxPath;
参数
参数名 |
必填 |
类型 |
说明 |
sandboxPath |
是 |
NSString |
录制文件保存的路径,必须是有效的沙盒文件路径,如xxx/Library/Caches/audioRecord.mp3。注: 1、保存音频文件为MP3格式; 2、如果两次传入的路径相同,录制数据会覆盖; 3、文件路径必须是有效路径,否则录制失败。例如:路径不存在或者不是文件路径(而是文件夹路径),则录制失败。 |
方法示例
| NSArray *cachesPathArr = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesPath = cachesPathArr.firstObject;
NSString *path = [cachesPath stringByAppendingPathComponent:@"audioRecord.mp3"];
BOOL exist = [[NSFileManager defaultManager] fileExistsAtPath:path];
if (!exist) {
[[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
}
[_roomMgr startAudioRecord:path];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
pauseAudioRecord
简要描述
- 是否暂停本地音频录制
接口名称
- - (int)pauseAudioRecord:(BOOL)pause;
参数
参数名 |
必填 |
类型 |
说明 |
pause |
是 |
BOOL |
是否暂停录制 |
方法示例
| [_roomMgr pauseAudioRecord:YES];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
stopAudioRecord
简要描述
- 停止本地音频录制
接口名称
- - (int)stopAudioRecord;
方法示例
| [_roomMgr stopAudioRecord];
|
返回值说明
类型 |
说明 |
int |
0:表示调用成功,非0:表示调用失败 |
备注