如何在AVAudioPlayer中播放歌曲的二进制数据

时间:2011-08-12 06:52:33

标签: iphone objective-c ipad

我正在接收来自xml的歌曲url并将它们保存在sqlite中作为二进制数据。 现在我想在AVAudioPlayer中播放这些歌曲。

我将如何实现这一目标? 这种方法适合在AVAudioPlayer中播放歌曲的二进制数据吗?

1 个答案:

答案 0 :(得分:1)

请看一下这篇文章:

AVAudioPlayer with external URL to *.m4p

AVAudioPlayer仅适用于本地网址。它必须是文件URL(file://)

请参阅Apple's Technical Q&A QA1634

您可以获取二进制数据并将其写入文件然后播放:

NSURL *url = [NSURL URLWithString:@"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p"]; 
NSData *soundData = [NSData dataWithContentsOfURL:url];
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                NSUserDomainMask, YES) objectAtIndex:0] 
                                                stringByAppendingPathComponent:@"sound.caf"];
[soundData writeToFile:filePath atomically:YES];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL
                                fileURLWithPath:filePath] error:NULL];  
NSLog(@"error %@", error);