【问题标题】:AVAudioPlayer with external URL to *.m4p带有 *.m4p 的外部 URL 的 AVAudioPlayer
【发布时间】:2010-12-09 00:23:42
【问题描述】:

我的问题如下。我得到了这段代码,我猜是一个损坏的 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 *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[player play];

有什么建议吗?

&error 显示如下:

Error Domain=NSOSStatusErrorDomain Code=-43 "Operation could not be completed. (OSStatus error -43.)"

【问题讨论】:

    标签: iphone url audio avaudioplayer


    【解决方案1】:

    您可以使用 AVPlayer,而不是使用 AVAudioPlayer。 AVPlayer 也适用于远程 URL

    【讨论】:

      【解决方案2】:

      我先尝试了这个,但收到错误 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 无法播放 m4p 文件 :( ...它没有开始播放或响应任何代表-方法:(
      • 试试新代码。我让它播放了一会儿,然后它停止了。还在调查。网址来自哪里?
      • 感谢您的精彩回答,我可以解决类似的问题。
      【解决方案3】:

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

      Apple's Technical Q&A QA1634

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        相关资源
        最近更新 更多