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

时间:2012-07-30 06:16:52

标签: iphone objective-c ios xcode avfoundation

我想在iPhone中使用URL Link播放音乐文件。但是,当我使用下面的代码时,我收到错误,我没有得到我出错的地方。谁能纠正我?

-(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];
}

5 个答案:

答案 0 :(得分:14)

这应该有效:

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];

答案 1 :(得分:5)

尝试以下方法:

-(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];

答案 2 :(得分:0)

当前答案:

现在考虑Why does AVAudioPlayer initWithContentsOfURL always fail with error code=-43链接。其解决方案是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];

答案 3 :(得分:0)

试试我的代码:

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

  [yourMediaPlayer play];

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

答案 4 :(得分:0)

我猜你要发送

audioPlayer.numberOfLoops = -1;

接收NSInvalidArgumentException将其更改为

audioPlayer.numberOfLoops = 1;

并查看apple的文档here