c - iOS 怎么模拟进栈与出栈
PHP中文网
PHP中文网 2017-07-01 09:12:26
0
3
1237

在处理直播视频中 需要一边保存 char 到一个容器里 一边从里面取出来 然后播放 安卓人家实现了 用的是队列 但是iOS队列貌似没有这个功能 我试过把char 转化为OC对象 然后保存到数组里面 通过遍历数组取出数据播放 当然遍历数组肯定是放在子线程的 这中实现方式刚开始是没有问题,但是需要不停的遍历数组,遍历一段时间自动就停下来,不遍历数组了
请问各位大神 这个功能有什么好的方法解决吗 下面是具体操作

// 这是往数组里面添加数组
char *p = new char[ilen + 1];
memcpy(p, data, ilen);

NSData *data= [NSData dataWithBytes:p length:ilen];

[clientManager.dataArr addObject:data];

// 这个是遍历数组
[clientManager.dataArr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

                int fragment_type;
                NSLog(@"+++++++++++%lu",(unsigned long)clientManager.dataArr.count);
                NSData *data = clientManager.dataArr[0];
                [clientManager.dataArr removeObjectAtIndex:0];
                char* Framebuf= (char*)[data bytes];
                NSLog(@"2<><><><><>>%s",Framebuf);
                int head_size = sizeof(FRAME_HEAD);
                FRAME_HEAD *frameHead = new FRAME_HEAD;
                memcpy(frameHead, Framebuf, head_size);
                int frameType = frameHead->iFrameType;
PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
过去多啦不再A梦

你这个怎么可以是进栈出栈呢?栈的特点是先进后出。直播数据你放入一个数组中,它不是流式的吗 一直在放入,你从0处一直往出拿,你用栈怎么可以实现。先进后出了,老的数据无法使用了

代言

可以参考下面的方法
How do I make and use a Queue in Objective-C?
Objective-C 队列实现

我想大声告诉你

不是直播 是回放 C++那面没法处理 发送命令到C++再到云终端需要过程 所以我们这需要处理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!