在我的应用程序中,我有一个音频网址。我想在我的设备上使用该网址播放音频。它似乎没有用。
这是我正在使用的代码。
- (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];
}
我使用了上面的代码。它不起作用。请告诉我上面代码中我出错的地方。
答案 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);
}