OK, có rất ít tùy chọn để mô phỏng video giật gân trong iOS. Tất cả những gì chúng ta có thể làm là chờ cho đến khi ứng dụng được tải đầy đủ và sau đó tạo Media Player và tải video trong đó.Thi đua video giật gân trong ứng dụng iOS
tôi thực hiện nó với đoạn mã sau:
-(void) moviePlayBackDidFinish:(NSNotification*)notification
{
NSLog(@"Intro video stopped");
[mMoviePlayer release];
}
- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSURL* mMovieURL;
NSBundle *bundle = [NSBundle mainBundle];
if(bundle != nil)
{
NSString *moviePath = [bundle pathForResource:@"intro" ofType:@"mp4"];
if (moviePath)
{
mMovieURL = [NSURL fileURLWithPath:moviePath];
[mMovieURL retain];
}
}
mMoviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mMovieURL];
[mMovieURL release];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:mMoviePlayer];
mMoviePlayer.controlStyle = MPMovieControlStyleNone;
[mMoviePlayer.backgroundView addSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Splash/background.png"]] autorelease]];
mMoviePlayer.scalingMode = MPMovieScalingModeFill;
[window addSubview:mMoviePlayer.view];
[mMoviePlayer setFullscreen:YES animated:NO];
[window makeKeyAndVisible];
[mMoviePlayer play];
<... other stuff ...>
}
Video của tôi là chỉ có 1 MB. Nhưng mã này làm điều gì đó khác biệt sau đó tôi muốn xem:
- Trước hết, người dùng có thể thấy màn hình giật tĩnh trong vài giây;
- Sau đó, màn hình màu đen xuất hiện trong 1 hoặc 2 giây. Tôi nghĩ điều này đang xảy ra vì trình phát đa phương tiện được tải.
- Bắt đầu phát video.
- Tải giao diện chính.
Khi bạn hiểu tôi không thích tạm dừng với màn hình đen - có vẻ xấu xí.
Theo như tôi có thể thấy trong bảng điều khiển của tôi đăng nhập vấn đề là mediaplayer đang chờ cho đến khi bộ điều khiển xem chính được nạp đầy đủ.
Vài từ về chế độ xem chính: Tôi đang viết một ứng dụng cho iPad và chế độ xem chính bao gồm một số bản xem trước với nhiều hình ảnh. Mọi hình ảnh và mọi chế độ xem phụ trong chế độ xem chính đều tải một số dữ liệu từ dịch vụ Web Internet qua lib ASIHTTPRequest.
Tôi nghĩ rằng Media Player đang chờ đợi tất cả các kết nối ban đầu để kết thúc và chỉ sau đó nó bắt đầu video ...
Làm thế nào tôi có thể buộc các video phát trước khi giao diện chính được nạp? Hoặc có lẽ tôi có thể trì hoãn việc tải XIB chính?
Cảm ơn bạn, tôi nghĩ rằng đó là một giải pháp tốt nhất :) Mặc dù tôi không thể hiểu tại sao người chơi đợi tất cả các kết nối ... – WASD42