Iphone AVAudioPlayer,外部URL指向*.m4p
我的问题如下。我得到了这段代码,我猜是一个损坏的NSURL,因为AVAudioPlayer在初始化后为零:Iphone AVAudioPlayer,外部URL指向*.m4p,iphone,url,audio,avaudioplayer,Iphone,Url,Audio,Avaudioplayer,我的问题如下。我得到了这段代码,我猜是一个损坏的NSURL,因为AVAudioPlayer在初始化后为零: NSString *dummyURLString = @"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p"; NSError *error; NSURL *url = [NSURL URLWithString:dummyURLString]; AVAudioPlayer *pl
NSString *dummyURLString = @"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p";
NSError *error;
NSURL *url = [NSURL URLWithString:dummyURLString];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[player play];
有什么建议这里出了什么问题
错误(&R)显示以下内容:
Error Domain=NSOSStatusErrorDomain Code=-43 "Operation could not be completed. (OSStatus error -43.)"
AVAudioPlayer仅适用于本地URL。它必须是文件URL(文件:/)
请参见我首先尝试了此操作,但出现错误2003334207:
NSData *soundData = [NSData dataWithContentsOfURL:URL];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:soundData error:&error];
似乎AVAudioPlayer真的想要一个文件。因此,我首先将数据放入一个文件中:
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);
您可以使用AVAudioPlayer而不是AVAudioPlayer。AVPlayer也可以处理远程URL非常感谢,这解决了第一步:)但在我看来,AVAudioPlayer无法播放m4p文件:(…它不会开始播放或响应任何委托方法:(尝试一下新代码。我让它播放了一会儿,然后它停止了。仍在调查。URL从哪里来?多亏了你的精彩回答,我可以解决类似的问题。