0

小さな問題があります。ローカルホストからオーディオを再生しようとすると、クラッシュします。
これがコードで、常にクラッシュします。

stuffURLのディクショナリ/変更可能な配列です

    stuff = [json objectAtIndex:indexPath.row];

 songlink = [NSURL URLWithString:[stuff objectForKey:@"Link"]];
    NSData *songdata = [NSData dataWithContentsOfURL:[NSURL URLWithString:[stuff objectForKey:@"Link"]]];
    jam = [[AVAudioPlayer alloc] initWithData:songdata error:nil];
    jam.delegate = self;
    [jam play];
4

1 に答える 1

0

objectForKeyの代わりに「valueForKey」を使用する必要があります。

他に考えるべきこと。

URLにhttpで始まる完全修飾URLが含まれていることを確認してください。また、ホスト名としてlocalhostを使用することはできません。

常に次のようなURLを使用する必要があります:

http://10.10.10.10/mysong.mp3

URLに「mysong.mp3」のような名前のスペースが含まれている場合、これも簡単に修正できます。

NSString *stringUrl = [stuff valueForKey:@"Link"];
NSString *newUrl = [stringUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
...[NSURL URLWithString:newUrl]
于 2012-09-23T09:02:27.330 に答える