8

在我的应用程序中,我创建的实例MPMoviePlayerController一开始是一个黑匣子,看起来像这样(因为视频一开始是黑色并淡入):

在此处输入图像描述

但是,我正在设想像这样更用户友好的东西,带有缩略图,如下例所示:

在此处输入图像描述

这是我创建的模型,但相机胶卷中的视频和消息应用程序中发送的视频使用该播放箭头。我需要实现什么类才能使用股票 iOS 播放箭头?

4

3 回答 3

6

这看起来像 的thumbnailImageAtTime:timeOption:方法MPMoviePlayerController,您应该输入要检索缩略图并使用该图像UIImageView在视频顶部显示的时间。

获得缩略图后,您将创建一个UIImageView并将图像设置为缩略图,并确保您设置userInteractionsEnabledYES. 确保将此图像视图的框架设置为覆盖电影播放器​​。

现在您可以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 UIButtonelse 将图像设置为播放图像,那么您根本不需要 a UIGestureRecognizer

于 2012-10-08T15:33:57.707 回答
0

您将通过将视频嵌入<video>Web 视图中的 HTML 5 标记来获得此箭头。

对于实际实现,请参阅类似这样的答案Play embedded video in UIWebView with HTML5

于 2012-10-15T09:46:06.020 回答
0

只使用 UIButton 怎么样?它可以有一个漂亮的背景图像,单击它,然后将其移动到电影播放器​​的后面,或者甚至删除按钮。即使在代码中也很容易添加

于 2012-10-15T21:17:52.447 回答