I want to save a song that I loaded with method - (id)initWithURL: of AVPlayer, so I don't need to load it next time I want to play it. I've spent hours browsing Apple documentation, but haven't found a solution.
user1407927
问问题
312 次
2 回答
0
如果您有 URL,则可以简单地使用其中一个NSURLConnection
或类似的类将 URL 下载到本地存储。AVPlayer
但是,不会为您执行此操作 - 您必须手动执行此操作。
于 2012-05-22T17:23:16.780 回答
0
正如@iKenndac 所说,你不能从 AVPlayer 中得到这个。您可以自己下载文件并将其存储到磁盘,但您将失去 AVPlayer 在下载歌曲和开始播放歌曲方面提供的所有优化。当然,下次您播放歌曲时,您将获得已将歌曲保存在磁盘上的好处。如果这种权衡对你来说很好,那么在你的 NSURLConnection 回调中会做这样的事情:
- (void)connection:(NSURLConnection *)connection
didReceiveData:(NSData *)data
{
[responseData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSFileHandle *myHandle = [NSFileHandle fileHandleForUpdatingAtPath:someFilePath];
[myHandle writeData:responseData];
[myHandle synchronizeFile];
[myHandle closeFile];
}
您必须将 responseData 定义为 NSMutableData 对象,并确保在调用 appendData 之前对其进行初始化。
于 2012-05-22T17:50:26.460 回答