MPMoviePlayerController 在 iPhone 应用程序中反向(向后)播放电影不流畅

Posted

技术标签:

【中文标题】MPMoviePlayerController 在 iPhone 应用程序中反向(向后)播放电影不流畅【英文标题】:MPMoviePlayerController playing movies in reverse (backwards) is not smooth in iPhone App 【发布时间】:2012-04-25 07:09:57 【问题描述】:

我正在开发一个需要反转视频播放的 iPhone 应用程序。我目前正在使用 XCode 4.2。我正在尝试使用 MPMoviePlayerController 反向播放电影。 但是当它反向播放时,它并不像向前播放那么流畅。它变得有点波涛汹涌,一点也不光滑。以下是我的代码。

- (void)viewDidLoad
//code for initializing the movie player
MPMoviePlayerController videoPlayer = 
[[MPMoviePlayerController alloc] initWithContentURL:"URL"];
self.videoPlayer = videoPlayer;
[videoPlayer release];
self.videoPlayer.view.userInteractionEnabled = NO;
self.videoPlayer.initialPlaybackTime = -1;
self.videoPlayer.shouldAutoplay=NO;
[self.videoPlayer prepareToPlay];


//code for initializing the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[button setTitle:@"Reverse" forState:UIControlStateNormal];

[button addTarget:self 
action:@selector(reverseMovie) forControlEvents:UIControlEventTouchDown];

button.frame = CGRectMake(0, 0, 50, 40);

[self.view addSubview:button];


-(void)reverseMovie
[self.videoPlayer setCurrentPlaybackRate:-1.0];

有什么可能的解决方案?

【问题讨论】:

【参考方案1】:

我尝试在 AVFoundation 中做同样的事情。在我设法让它工作之前,我不得不做很多工作。

我所做的是生成图像,颠倒顺序,将它们放入assetWriter,导出视频然后播放。

你可以在这里下载我的代码:https://github.com/mikaelhellqvist/ReverseClip

【讨论】:

在 GitHub 上的问题下归档。我去看看。 Mike 你的示例代码在这里崩溃有什么建议吗? - BOOL 附加 = [assetWriterPixelBufferAdaptor appendPixelBuffer:pixelBuffer withPresentationTime:presentationTime]; 我没有遇到任何问题。你有日志吗?你可以在 github 上创建一个问题。 现在在 GitHub 上找到您的问题。会在那里回答你。 感谢您帮助我的朋友。请务必说明这些宽度和高度参数的含义,以及我们是否需要在代码中为不同大小和长度的视频担心它们【参考方案2】:

用 AVPlayer 试试这个

 avPlayer.rate=-1.0f;

这会将速率设置为 -ve,因此可以顺畅地反向播放视频。 :)

【讨论】:

以上是关于MPMoviePlayerController 在 iPhone 应用程序中反向(向后)播放电影不流畅的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MPMoviePlayerController 上处理多个 SRT 文件

在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏

在 UITableViewCell 中嵌入 MPMoviePlayerController

MPMoviePlayerController 在影片结尾更改控件样式

后台的 MPMoviePlayerController / AVAudioSession 在来电后不会重新开始播放

MPMoviePlayerController 在启动前显示空白屏幕?