在我的应用程序中,我创建的实例MPMoviePlayerController
一开始是一个黑匣子,看起来像这样(因为视频一开始是黑色并淡入):
但是,我正在设想像这样更用户友好的东西,带有缩略图,如下例所示:
这是我创建的模型,但相机胶卷中的视频和消息应用程序中发送的视频使用该播放箭头。我需要实现什么类才能使用股票 iOS 播放箭头?
在我的应用程序中,我创建的实例MPMoviePlayerController
一开始是一个黑匣子,看起来像这样(因为视频一开始是黑色并淡入):
但是,我正在设想像这样更用户友好的东西,带有缩略图,如下例所示:
这是我创建的模型,但相机胶卷中的视频和消息应用程序中发送的视频使用该播放箭头。我需要实现什么类才能使用股票 iOS 播放箭头?
这看起来像 的thumbnailImageAtTime:timeOption:
方法MPMoviePlayerController
,您应该输入要检索缩略图并使用该图像UIImageView
在视频顶部显示的时间。
获得缩略图后,您将创建一个UIImageView
并将图像设置为缩略图,并确保您设置userInteractionsEnabled
为YES
. 确保将此图像视图的框架设置为覆盖电影播放器。
现在您可以UITapGestureRecognizer
在该图像视图上创建一个将触发一个方法的视图。这个方法然后调用play
你的MPMoviePlayerController
对象的方法。
-(void)viewDidLoad{
[...]
UIImage *thumbnail = [moviePlayer thumbnailImageAtTime:5.0
timeOption:MPMovieTimeOptionNearestKeyFrame];
UIImageView *iv = [[UIImageView alloc] initWithImage:thumbnail];
iv.userInteractionEnabled = YES;
iv.frame = moviePlayer.frame;
[self.view addSubview:iv];
[iv release];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tap.numberOfTapsRequired = 1;
[iv addGestureRecognizer:tap];
[tap release];
[...]
}
- (void)handleTap:(UITapGestureRecognizer *)gesture{
iv.hidden = YES;
[moviePlayer play];
}
请注意,如果您想要播放按钮,然后在 Photoshop 中创建一个播放按钮,并将其添加到缩略图图像视图的顶部,将手势识别器附加到该图像视图,并确保在开始播放视频时隐藏两个图像视图。
您可以使用 a UIButton
else 将图像设置为播放图像,那么您根本不需要 a UIGestureRecognizer
。
您将通过将视频嵌入<video>
Web 视图中的 HTML 5 标记来获得此箭头。
对于实际实现,请参阅类似这样的答案Play embedded video in UIWebView with HTML5。
只使用 UIButton 怎么样?它可以有一个漂亮的背景图像,单击它,然后将其移动到电影播放器的后面,或者甚至删除按钮。即使在代码中也很容易添加