我的应用程序从我们的服务器下载一个mp3并将其播放回用户.该文件是64 kbps(如果我理解正确,这完全在iPhone的可接受范围内).我已经查询了如何在数十个网站上执行此操作,他们都建议我这样做:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://.../file.mp3"]];
NSError *e = nil;
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error&e];
[player setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,播放器返回null并且我收到此错误:
2011-02-04 10:44:46.176 MyApp[6052:207] Error loading audio: Error Domain=NSOSStatusErrorDomain Code=1954115647 "The operation couldn’t be completed. (OSStatus error 1954115647.)"
2011-02-04 10:44:49.647 MyApp[6052:207] unsupported file type
Run Code Online (Sandbox Code Playgroud)
我检查了文件,我知道它有效.它将在Windows Media Player和Mac上的Quicktime上没有问题.我还将文件上传到iPhone模拟器,它没有任何问题.该文件很好,但由于某种原因AVAudioPlayer不喜欢它.
有什么我需要改变的吗?NSData是否有某种设置来指定它是什么类型的文件?有谁有想法吗?
我有托管具有图像属性的对象.由于在CoreData中存储大blob是一个坏主意,我正在尝试使用内置的CoreData选项" Store in External Record File ",您可以在Data Model Inspector中看到它.
尽管启用了此选项,但我看不到任何外部存储的图像数据.从大小来看,似乎它们仍然保存在sqlite文件中.有什么问题?