使用AVPlayer流式播放多首音乐

时间:2014-06-27 08:12:20

标签: ios iphone avplayer

我有一个我想制作的应用程序需要从Web服务器传输音频文件。我使用AVPlayer作为播放器。问题是,我从服务器收到的一些响应中有两个音频文件。这使得流媒体变得困难。顺便提一下,我的音频播放器用户界面是这样的:

enter image description here

我有一个用于流式时间范围的滑块(黑色)和另一个用于AVPlayer.currentTime的滑块。我有两个音频流音乐,他们的音乐持续时间加在一起,现在是8:46。我的第一首音乐有6分钟的持续时间,我的第二首音乐有1:46。正如您在上面的照片中看到的,我的流时间范围滑块表示AVAsset已完全播放第一首音乐。我的问题是,当第一个音乐到达时,我无法继续播放和播放下一首音乐。它只是停止,滑块值回到0。

我想要完成的是当第一个项目到达终点时,AVPlayer将加载另一个玩家项目,这将是第二个音乐。将继续播放,滑块将继续移动。

这可能吗?你有什么建议?谢谢专家。

1 个答案:

答案 0 :(得分:0)

要一个接一个地加载音频文件,您可以使用AVQueuePlayer。

 NSURL *song1 = [NSURL URLWithString:@"audio url1"]; 
 NSURL *song2 = [NSURL URLWithString:@"audio url2"];

 AVPlayerItem *playerItem1 = [[AVPlayerItem alloc] initWithURL:song1];
 AVPlayerItem *playerItem2 = [[AVPlayerItem alloc] initWithURL:song2];

 NSArray *songs = @[playerItem1, playerItem2];

 self.queuePlayer = [[AVQueuePlayer alloc] initWithItems:songs];
 [self.queuePlayer play];

希望这对你有所帮助。