使用Matt Gallagher的音频流媒体逐步下载

时间:2010-08-07 08:57:33

标签: iphone core-audio progressive-download audiostreamer

在谈论音频时,我完全是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上加载它,我会收到错误。

1 个答案:

答案 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(假设它有一个结束)它应该保存得很好。