腾讯云直播录制遇到的bug

时间:2023-09-05 11:29:56
1.录制方式应用:
初始化方法
[[TXUGCRecordshareInstance] startCameraCustom:param preview:_showPlayerView];
IDSLOG(@"Levi摄像机:第一步 初始化方法");
开启录制
[[TXUGCRecordshareInstance] startRecord];
IDSLOG(@"Levi摄像机:第二步 开启录制");
结束录制
[[TXUGCRecordshareInstance] stopRecord];
IDSLOG(@"Levi摄像机:第三步 停止录制视频");
.
录制成功
-(void)onRecordComplete:(TXUGCRecordResult *)result
{
    IDSLOG(@"Levi摄像机:第四步 录制是否成功中");
    _recordSuccessLock = YES;
    _clickVideoOrPic = YES;
    _stopCameraPreview = NO;
    if (result.videoPath) {
        IDSLOG(@"Levi摄像机:第四步 录制成功");
    }
    else {
        NSLog(@"print crush ");
        IDSLOG(@"Levi摄像机:第四步 录制失败");
    }
}
遇到的Bug 一:
在使用TXLiteAVSDK_UGC这个DEMO ,腾讯微视频上传这个功能的时候,有一个发布视频的回调:
-(void) onPublishProgress:(NSInteger)uploadBytes totalBytes: (NSInteger)totalBytes
这个回调 上传得到的结果都是上传结束才返回的,而且得到的结果并不是100% 
我下载的是 全功能专业版  然而还是出现这个问题 我的代码如下:
-(void) onPublishProgress:(NSInteger)uploadBytes totalBytes: (NSInteger)totalBytes
{
    NSString *str = [NSString stringWithFormat:@"%02d%%", (int)(uploadBytes*100/totalBytes)];
    NSLog(@"strLevi : %@", str);
}
在上传结束之后才打印出来 如下:
2017-10-09 17:02:17.048944+0800 Near[1013:205691] strLevi \^P: 00%
2017-10-09 17:02:17.052692+0800 Near[1013:205691] strLevi \^P: 01%
2017-10-09 17:02:17.053663+0800 Near[1013:205691] strLevi \^P: 02%
2017-10-09 17:02:17.055702+0800 Near[1013:205691] strLevi \^P: 03%
2017-10-09 17:02:17.056461+0800 Near[1013:205691] strLevi \^P: 03%
2017-10-09 17:02:17.057527+0800 Near[1013:205691] strLevi \^P: 04%
2017-10-09 17:02:17.058907+0800 Near[1013:205691] strLevi \^P: 05%
2017-10-09 17:02:17.121165+0800 Near[1013:205691] strLevi \^P: 06%
2017-10-09 17:02:17.122104+0800 Near[1013:205691] strLevi \^P: 06%
1)并没有从1% - 100% 这种进度打印出来  
2)是上传成功之后才打印出来,并不是在上传中打印进度
遇到的Bug 二:
小视频录制功能,经常会crush,录制完成只要获取不到result.videoPath,就必定crush,应该是腾讯sdk并没有处理好这个逻辑,什么情况下获取不到 result.videoPath?当录制的时间段较短,或者横竖屏切换时,就会反复出现crush,或者和其他视频sdk冲突,也会出现经常crush的操作
-(void)onRecordComplete:(TXUGCRecordResult *)result
{
    _videoRecording = NO;
    _clickVideoOrPic = YES;
    if (result.videoPath) {
        //处理操作
    }
    else {
        NSLog(@"print crush ");
       //到这里一定会crush
    }
}
- over