2

我是 Mac Dev 的新手,我正在努力处理音频流。我在Get an audio stream from URI and play it on iPhone找到了一个很好的参考

作者似乎很高兴,我试图重现该解决方案。流来自 Dogglounge 电台。URL 是http://dl3.mixcache.com:8000(这是当我单击获取信息时 iTunes 返回的内容)。

我所做的是创建一个 iPhone 应用程序,其中包含一个实际上没有控制的单一视图。我在 viewDidLoad 中添加了代码以尽快启动流。似乎 NSData *_objectData 无休止地运行。我使用iOS6模拟器。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSString* resourcePath = @"http://dl3.mixcache.com:8000"; //your url
    NSURL *url = [NSURL URLWithString:resourcePath];

    NSError *e = nil;
    NSData *_objectData = [NSData dataWithContentsOfURL:url options:NSDataReadingMappedIfSafe error:&e];


    NSLog(@"%@", [e localizedDescription]);

    NSError *error;

    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error];
    audioPlayer.numberOfLoops = 0;
    audioPlayer.volume = 1.0f;
    [audioPlayer prepareToPlay];

    if (audioPlayer == nil)
        NSLog(@"%@", [error description]);
    else
        [audioPlayer play];


}
4

1 回答 1

1

这是 的预期行为NSData dataWithContentsOfURL::它会阻塞直到下载数据。对于异步下载,请参阅此答案:Does -dataWithContentsOfURL: of NSData 在后台线程中工作吗?

于 2012-12-02T20:26:27.430 回答