1

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

4

1 回答 1

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

于 2011-02-20T07:21:15.763 回答