在處理直播影片中需要一邊保存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;
你這個怎麼可以是進棧出棧呢?棧的特徵是先進後出。直播資料你放入一個陣列中,它不是串流的嗎 一直在放入,你從0處一直往出拿,你用棧怎麼可以實現。先進後出了,老的數據無法使用了
可以參考下面的方法
How do I make and use a Queue in Objective-C?
Objective-C 佇列實作
不是直播 是回放 C++那面沒法處理 發送指令到C++再到雲端終端需要過程 所以我們這需要處理