我正在创建一个应用程序,它将从互联网广播流中直播音频。
我正在使用AVPLayer并创建AVAudioSession等等......
一切正常,除了...... AVPlayer没有[停止]功能,只有[播放]和[暂停]。因此,当用户暂停流时,它会缓冲,当他们点击播放时,它会在他们按下暂停之前从停止的位置开始。
问题是......有没有办法强制音频流始终播放?
我真的不希望任何缓冲超过几秒......
感谢您的帮助!
答案 0 :(得分:1)
如果您不想缓冲,请尝试通过MPMovieviewcontroller播放流媒体直播音频。
它是直播音频/视频的完美播放器。我也在我的一个
中使用这个播放器用于播放实时音频流的应用程序。我认为你的所有要求都与此相符。尝试实施
它。它也很容易实现。这是我使用
播放流音频的代码MPMovieviewcontroller:
NSURL *fileURL=[NSURL URLWithString:geturl];
NSLog(@"fileURL..%@",fileURL);
moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
[moviePlayerController.moviePlayer prepareToPlay];
moviePlayerController.moviePlayer.shouldAutoplay=YES;
moviePlayerController.view.frame = self.view.frame;
[self presentMoviePlayerViewControllerAnimated:moviePlayerController];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerDidExitFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[moviePlayerController.moviePlayer play];
- (void)MPMoviePlayerDidExitFullscreen:(NSNotification *)notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
[moviePlayerController.moviePlayer stop];
MPMoviePlayerController *player = [notification object];
[[NSNotificationCenter defaultCenter]
removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[moviePlayerController dismissMoviePlayerViewControllerAnimated];
}
对于后台播放,我在info.plist中添加这些行。你还将这些添加到plist: