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 work in a background thread?

于 2012-12-02T20:26:27.430 に答える