我想像iOS中的youtube一样播放我的视频,使用来自URL的目标C和视频文件。任何人都可以指导我如何做到这一点,或者有任何方式以有效的方式进行视频缓冲。
答案 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];
}
}