avplayer不玩url

我使用avplayer播放audio的url,但它不工作,我不知道我在哪里错了

NSString *radioURL = @"https://www.example.com"; radioPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:radioURL]] ; // [radioPlayer seekToTime:kCMTimeZero]; NSLog(@"radio player %@",radioPlayer.currentItem); [radioPlayer play]; 

任何帮助,将不胜感激。

我强烈build议使用这个代码播放电台stream与这个波纹pipe的代码:请看看AVPlayer_Class

  -(void)Play{ NSString *radioURL = @"https://www.example.com"; //this url must valid AVPlayer *player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:radioURL]]; self.songPlayer = player; //self.songPlayer is a globle object of avplayer [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:[songPlayer currentItem]]; [self.songPlayer addObserver:self forKeyPath:@"status" options:0 context:nil]; } - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (object == songPlayer && [keyPath isEqualToString:@"status"]) { if (songPlayer.status == AVPlayerStatusFailed) { NSLog(@"AVPlayer Failed"); } else if (songPlayer.status == AVPlayerStatusReadyToPlay) { NSLog(@"AVPlayerStatusReadyToPlay"); [self.songPlayer play]; } else if (songPlayer.status == AVPlayerItemStatusUnknown) { NSLog(@"AVPlayer Unknown"); } } } - (void)playerItemDidReachEnd:(NSNotification *)notification { // code here to play next sound file } 

引用链接是 – 用AVPlayerstream式传输MP3audio

我有同样的问题,只是意识到我没有保留玩家(使用ARC)! 所以它被释放并在开始后立即停止播放。

你需要确保你有属性radioPlayer和使用self.radioPlayer而不是radioPlayer。

你做得很好,但你的方法需要在一个地方纠正。使用下面的方法检查:

 NSURL *audioURL = [NSURL URLWithString:radioURL]; NSData *audioData = [NSData dataWithContentsOfURL:audioURL]; self.audioPlayer = [[AVAudioPlayer alloc] initWithData:audioData error:nil]; self.audioPlayer.numberOfLoops = -1; self.audioPlayer.delegate = self; [self.audioPlayer prepareToPlay]; self.audioPlayer.volume=1.0; [self.audioPlayer autorelease]; [self.audioPlayer Play]; 

并为AVAudioPlayer添加适当的委托方法。

确保URL是AddingPercentEscapes

 NSURL *audioURL = // Your Url; NSString *encodedString = [@"Your Url" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *myURL = [[NSURL alloc] initWithString:encodedString] AVPlayer *player = [AVPlayer playerWithURL:myURL]; [player prepareToPlay]; player play];