gpt4 book ai didi

iphone - MPMoviePlayerController 播放在视频结束前终止

转载 作者:行者123 更新时间:2023-11-28 20:33:43 24 4
gpt4 key购买 nike

我无法理解这个类并让它正常工作,这是我使用它的代码片段:

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:_videoURL];
UIImage *videoThumbnail = [moviePlayer thumbnailImageAtTime:0 timeOption:MPMovieTimeOptionNearestKeyFrame];
[lastImageView setImage:videoThumbnail];

[moviePlayer setControlStyle:MPMovieControlStyleNone];
[moviePlayer setShouldAutoplay:YES];
[moviePlayer prepareToPlay];

[moviePlayer.view setFrame:lastImageView.frame];
moviePlayer.view.transform = CGAffineTransformMakeRotation((90*M_PI)/180);
[self.view addSubview:moviePlayer.view];

[moviePlayer play];

videoThumbnail 行仍然存在的唯一原因是因为我没有让视频播放,直到我只是尝试查看它是否可以从那里获取图像然后它突然开始工作.. 。 有点。现在它播放 2-3 秒,然后终止而不发送 MPMoviePlayerPlaybackDidFinishNotification 或 MPMoviePlayerPlaybackStateDidChangeNotification我在谷歌上搜索了一下,找不到任何有用的提示,有人可以告诉我哪里出了问题或我忘记了什么

最佳答案

如果您没有将新创建的 MPMoviePlayerController 实例分配给具有本地作用域的变量 (moviePlayer) 以外的任何对象,那么电影播放器​​将在电影开始播放。 (我想 thumbnailImageAtTime 调用会让它保持更长时间。)

尝试将电影播放器​​实例分配给保留的(强)实例变量或属性。当然它应该在完成后发布,因为多个电影播放器​​实例不能很好地一起播放。

另请注意,从 iOS 5 开始,调用 prepareToPlay 是必需的。以下内容来自 Matt Neuberg 的Programming iOS 5, Second Edition 第 28 章:

Before you can display a movie in your interface with an MPMoviePlayerController, you must call prepareToPlay, which is supplied through the MPMediaPlayer protocol (adopted by MPMoviePlayerController). This requirement is new in iOS 5, and is a major difference from previous versions of the system; your old code can break if it didn’t make this call.

关于iphone - MPMoviePlayerController 播放在视频结束前终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com