在iOS 8中像youtube一样播放视频

时间:2015-05-14 06:01:24

标签: ios objective-c iphone video-streaming

我想像iOS中的youtube一样播放我的视频,使用来自URL的目标C和视频文件。任何人都可以指导我如何做到这一点,或者有任何方式以有效的方式进行视频缓冲。

1 个答案:

答案 0 :(得分:1)

像你一样缓冲管可以使用原生Objective C" MPMovieController"来完成。如果它适合你,你可以查看它。

    MPMoviePlayerViewController* MPmoviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerWillExitFullscreenNotification
                                               object:nil];
    moviePlayerController.moviePlayer.fullscreen=YES;
    moviePlayerController.moviePlayer.shouldAutoplay=YES;
    [self presentMoviePlayerViewControllerAnimated:moviePlayerController];

将MPmoviePlayerController声明为全局变量。然后根据您的要求定义其选择器方法来处理通知。

- (void)moviePlaybackComplete:(NSNotification *)notification
{
if([notification.name isEqual:MPMoviePlayerPlaybackDidFinishNotification])
{
    NSError *error = [[notification userInfo] objectForKey:@"error"];
    if (error)
    {
        NSLog(@"Did finish with error: %@", error);
    }
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:nil];
    [moviePlayerController.moviePlayer stop];
    moviePlayerController = nil;
    [self dismissMoviePlayerViewControllerAnimated];
}
else if([notification.name isEqual:MPMoviePlayerWillExitFullscreenNotification])
{
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerWillExitFullscreenNotification
                                                  object:nil];
    [moviePlayerController.moviePlayer stop];
    moviePlayerController = nil;
    [self dismissMoviePlayerViewControllerAnimated];
}
}