使用url播放音频不适用于iOS7

时间:2014-05-30 06:41:49

标签: ios audio avaudioplayer

在我的应用程序中,我有一个音频网址。我想在我的设备上使用该网址播放音频。它似乎没有用。

这是我正在使用的代码。

- (IBAction)play:(id)sender {

     NSURL *url = [NSURL URLWithString:@"http://jesusredeems.in/media/Media Advt/mp3_player/Songs/viduthalaiyin geethangal_vol1/93.Ellame Koodum.mp3"];

     NSData *data = [NSData dataWithContentsOfURL:url];

     AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];

     [audioPlayer play];
}

我使用了上面的代码。它不起作用。请告诉我上面代码中我出错的地方。

2 个答案:

答案 0 :(得分:2)

您需要在查询字符串中添加百分比转义符,还需要将AVAudioPlayer声明为全局变量。

所以在你的类扩展中写下属性:

@property (nonatomic, strong) AVAudioPlayer *audioPlayer;

修改你的方法,如:

- (IBAction)play:(id)sender
{
     NSString *urlstr = @"http://jesusredeems.in/media/Media Advt/mp3_player/Songs/viduthalaiyin geethangal_vol1/93.Ellame Koodum.mp3";
     urlstr = [urlstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
     NSURL *url = [NSURL URLWithString:urlstr];
     NSData *data = [NSData dataWithContentsOfURL:url];
     _audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];
     [_audioPlayer play];
}

答案 1 :(得分:1)

您需要在网址

中添加%20的空间编码
  NSString *strURl=@"http://jesusredeems.in/media/Media Advt/mp3_player/Songs/viduthalaiyin geethangal_vol1/93.Ellame Koodum.mp3";
        NSURL *url = [NSURL URLWithString:[strURl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

如果仍然无法使用委托方法

audioPlayer = self;

使用委托方法

 -(void)audioPlayerDecodeErrorDidOccur:
    (AVAudioPlayer *)player
                                    error:(NSError *)error
    {
        NSLog(@"%@",error);
    }