在谈论音频时,我完全是n00b。我在我的收音机应用程序上使用Matt Gallagher的音频流。我如何使用渐进式下载?另外,ExtAudioFile也是一个好主意:)
编辑:
使用它:
length = CFReadStreamRead(stream, bytes, kAQDefaultBufSize);
if(!data)
data =[[NSMutableData alloc] initWithLength:0];
[data appendData:[NSData dataWithBytes:bytes length:kAQDefaultBufSize]];
现在我可以使用writeToFile保存音频数据:atomically:NSData方法,但音频不会播放。此外,如果我尝试在AVAudioPlayer上加载它,我会收到错误。
答案 0 :(得分:1)
我正在尝试做类似的事情。我最终这样做了:
length = CFReadStreamRead(stream, bytes, kAQDefaultBufSize);
// Save data
if (saveLocation){
NSFileHandle *mp3 = [NSFileHandle fileHandleForWritingAtPath:saveLocation];
[mp3 seekToEndOfFile];
[mp3 writeData:[NSData dataWithBytes:bytes length:length]];
[mp3 closeFile];
}
需要注意的一些问题。您应该确保saveLocation中的文件存在。我使用mp3 url和saveLocation路径创建了一个新的初始化程序,并将检查放在那里。另外,请注意,如果用户在mp3中执行搜索,则无法实现。基本上,它会准确记录播放的内容。知道播放位置移动是不够智能的。但是,如果你只是启动流,并允许它完成整个mp3(假设它有一个结束)它应该保存得很好。