gpt4 book ai didi

ios - 同时将数据写入和读取到NSMutableArray

转载 作者:行者123 更新时间:2023-12-03 02:33:47 29 4
gpt4 key购买 nike

我正在尝试制作一个渐进式下载音频播放器,该播放器将在播放音频时存储尽可能多的音频。

音频的格式是流优化的m4a

对于这个问题,我想将带有音频流的音频数据包放到内存中,不要将其保存到任何文件中以保持速度。

而且由于m4a文件的性质,无论如何我无法同时从磁盘写入和读取文件...

因此,我从远程源流式传输和解析音频包,然后将它们放入Singleton NSMutableArray ...

在流光下载音频数据包的同时,播放器同时读取和播放NSMutableArray中的音频数据包...

平均每个文件有大约11000个音频数据包,因此阵列的数量达到11000。

    NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
NSData *inputData = [NSData dataWithBytes:inInputData length:inPacketDescriptions[i].mDataByteSize];
[myDict setObject:inputData forKey:@"inInputData"];


NSNumber *numberBytes = [NSNumber numberWithInt:inNumberBytes];
[myDict setObject:numberBytes forKey:@"inNumberBytes"];

NSNumber *numberPackets = [NSNumber numberWithInt:inNumberPackets];
[myDict setObject:numberPackets forKey:@"inNumberPackets"];


NSNumber *mStartOffset = [NSNumber numberWithInt:inPacketDescriptions[i].mStartOffset];
NSNumber *mDataByteSize = [NSNumber numberWithInt:inPacketDescriptions[i].mDataByteSize];
NSNumber *mVariableFramesInPacket = [NSNumber numberWithInt:inPacketDescriptions[i].mVariableFramesInPacket];

[myDict setObject:mStartOffset forKey:@"mStartOffset"];
[myDict setObject:mDataByteSize forKey:@"mDataByteSize"];
[myDict setObject:mVariableFramesInPacket forKey:@"mVariableFramesInPacket"];

[sharedCache.baseAudioCache addObject:myDict];

我的问题是在某个时候我会遇到僵局吗?
这是音频流的好习惯吗?

最佳答案

我真的建议您在构建NSMutableArray之后使用NSArrays。

您也可以同步锁定NSMutableArray。

@synchronized(yourMutableArray) {
[yourMutableArray stuffMethod];
}

关于ios - 同时将数据写入和读取到NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30311281/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com