我有一个我想制作的应用程序需要从Web服务器传输音频文件。我使用AVPlayer
作为播放器。问题是,我从服务器收到的一些响应中有两个音频文件。这使得流媒体变得困难。顺便提一下,我的音频播放器用户界面是这样的:
我有一个用于流式时间范围的滑块(黑色)和另一个用于AVPlayer.currentTime
的滑块。我有两个音频流音乐,他们的音乐持续时间加在一起,现在是8:46。我的第一首音乐有6分钟的持续时间,我的第二首音乐有1:46。正如您在上面的照片中看到的,我的流时间范围滑块表示AVAsset
已完全播放第一首音乐。我的问题是,当第一个音乐到达时,我无法继续播放和播放下一首音乐。它只是停止,滑块值回到0。
我想要完成的是当第一个项目到达终点时,AVPlayer
将加载另一个玩家项目,这将是第二个音乐。将继续播放,滑块将继续移动。
这可能吗?你有什么建议?谢谢专家。
答案 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];
希望这对你有所帮助。