腾讯云直播录制遇到的bug

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
原文地址:https://www.cnblogs.com/firstrate/p/7888009.html