1

我目前有一个从应用程序启动时播放的 gif 转换而来的 mp4 视频,但使用视频会停止播放音乐并且连接的播放设备有问题。

无论如何,我真正想要的是在应用启动时显示我的 gif。但我似乎无法让 gif “播放”它只显示一帧,我如何让它播放整个 gif?

我当前的代码:

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Show Animation;
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Launch" ofType:@"mp4"]];
LaunchPlayer = [[MPMoviePlayerViewController alloc] 
                                                 initWithContentURL:url];
LaunchPlayer.view.frame = self.view.bounds;
LaunchPlayer.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
LaunchPlayer.moviePlayer.controlStyle = MPMovieControlStyleNone;
LaunchPlayer.view.tag = 1;
[self.view addSubview:LaunchPlayer.view];
[LaunchPlayer.moviePlayer play];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(LaunchFinish) 
                                             name:@"MPMoviePlayerPlaybackDidFinishNotification"
                                           object:nil];
}
4

2 回答 2

6

虽然我看不出您发布的代码与使用 .gif 有什么关系,但您仍然坚持第一帧,因为 iOS 不会运行动画 .gif。但是,您可以将动画的每一帧导出为单独的图像并像这样为它们设置动画。

-(void) viewDidLoad
{

imageView.animationImages = [NSArray arrayWithObjects:    
                                    [UIImage imageNamed:@"myImageFrame1.gif"],
                                    [UIImage imageNamed:@"myImageFrame2.gif"],
                                    [UIImage imageNamed:@"myImageFrame3.gif"],
                                    [UIImage imageNamed:@"myImageFrame4.gif"], nil];


    imageView.animationDuration = 2.0; 
    imageView.animationRepeatCount = 0; 
    [imageView startAnimating]; 

}
于 2012-05-10T19:46:30.880 回答
5

在我这里的小例子中。我使用了一个名为 webView 的 UIWEBVIEW,并将 spin-loader.gif 添加为资源。只要添加了图像,我就可以将其放在项目中的任何位置。这显示了 gif 并使其具有动画效果。希望这可以帮助。

NSString *pathImg = [[NSBundle mainBundle] pathForResource:@"spinning-loader" ofType:@"gif"];
NSString* webViewContent = [NSString stringWithFormat:
                            @"<html><body><img style='width:85;height:85;' src=\"file://%@\" /></body></html>", pathImg];
[webView loadHTMLString:webViewContent baseURL:nil];

webView.scrollView.bounces = NO;
webView.scrollView.scrollEnabled = NO;
webView.opaque=FALSE;
[webView setBackgroundColor:[UIColor clearColor]];
于 2013-05-07T11:50:58.410 回答