如何在iPhone中使用URL链接播放音乐文件?

我想用iPhone中的URL链接播放音乐文件。 但是,当我使用下面的代码,我得到错误,我没有得到我要去的地方错了。 任何人都可以纠正我?

-(void)viewDidLoad { [super viewDidLoad]; NSString* resourcePath = @"http://192.167.1.104:8888/SHREYA.mp3"; //your url NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:resourcePath]]; NSError *error; audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:_objectData error:&error]; audioPlayer.numberOfLoops = -1; if (audioPlayer == nil) NSLog([error description]); else [audioPlayer play]; } 

这应该工作:

 NSURL *url = [NSURL URLWithString:@"<#Live stream URL#>]; // You may find a test stream at <http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8>. self.playerItem = [AVPlayerItem playerItemWithURL:url]; //(optional) [playerItem addObserver:self forKeyPath:@"status" options:0 context:&ItemStatusContext]; self.player = [AVPlayer playerWithPlayerItem:playerItem]; self.player = [AVPlayer playerWithURL:<#Live stream URL#>]; //(optional) [player addObserver:self forKeyPath:@"status" options:0 context:&PlayerStatusContext]; 

使用下面的代码来播放音乐:

[self.player play];

尝试以下操作:

 -(void)viewDidLoad { [super viewDidLoad]; NSString* resourcePath = @"your url"; //your url NSData *_objectData = [NSData dataWithContentsOfURL:[NSURL URLWithString:resourcePath]]; NSError *error; audioPlayer = [[AVAudioPlayer alloc] initWithData:_objectData error:&error]; audioPlayer.numberOfLoops = 1; if (audioPlayer == nil) NSLog([error description]); else [audioPlayer play]; 

试试我的代码:

 NSURL *filepath = [NSURL fileURLWithPath:audioFilePath]; [yourMediaPlayer setContentURL:filepath]; //set player. yourMediaPlayer.controlStyle = MPMovieControlStyleNone; yourMediaPlayer.currentPlaybackTime = 0; yourMediaPlayer.shouldAutoplay = FALSE; [yourMediaPlayer play]; 

^ – ^,我用上面的代码使用MPMoviePlayerController。

当前答案:

现在考虑为什么AVAudioPlayer的initWithContentsOfURL总是失败,错误代码= -43链接。 其解决scheme是avplayer链接

较早的答案

 //You have to pass NSURL not NSData NSString* resourcePath = @"http://192.167.1.104:8888/SHREYA.mp3"; //your url NSURL *url = [NSURL alloc]initWithString:resourcePath]; audioPlayer = [[AVAudioPlayer alloc] initWithURL:url error:&error]; audioPlayer.delegate = self; [url release]; [audioPlayer prepareToPlay]; [audioPlayer play]; 

我想你正在发送

 audioPlayer.numberOfLoops = -1; 

接收NSInvalidArgumentException将其更改为

 audioPlayer.numberOfLoops = 1; 

并在这里检查苹果的文档