我目前在应用程序发布时使用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];
}
答案 0 :(得分: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];
}
答案 1 :(得分: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]];