ठीक है, आईओएस में स्पलैश वीडियो अनुकरण करने के लिए बहुत कम विकल्प हैं। हम सब कुछ कर सकते हैं जब तक कि एप्लिकेशन पूरी तरह से लोड नहीं हो जाता है और फिर मीडिया प्लेयर बनाएं और इसमें वीडियो लोड करें।आईओएस एप्लिकेशन में स्पलैश वीडियो इम्युलेटिंग
मैं निम्नलिखित कोड के साथ इसे लागू किया:
-(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 ...>
}
मेरे वीडियो में केवल 1 एमबी है। लेकिन यह कोड कुछ अलग करता है तो मैं देखना चाहता हूं:
- सबसे पहले उपयोगकर्ता कुछ सेकंड के लिए एक स्थिर स्पलैश स्क्रीन देख सकते हैं;
- फिर 1 या 2 सेकंड के लिए एक काली स्क्रीन दिखाई देती है। मुझे लगता है कि यह हो रहा है क्योंकि मीडिया प्लेयर लोड हो गया है।
- वीडियो बजाना शुरू करें।
- मुख्य इंटरफ़ेस भार।
जैसा कि आप समझते हैं कि मुझे ब्लैक स्क्रीन के साथ रोकना पसंद नहीं है - यह बदसूरत लग रहा है।
जहां तक मैं अपने कंसोल लॉग में देख सकता हूं, समस्या यह है कि मुख्य दृश्य नियंत्रक पूरी तरह से लोड होने तक mediaplayer प्रतीक्षा कर रहा है।
मुख्य दृश्य के बारे में कुछ शब्द: मैं आईपैड के लिए एक आवेदन लिख रहा हूं और मुख्य दृश्य में कई छवियों के साथ कई सबव्यूव शामिल हैं। मुख्य दृश्य में प्रत्येक छवि और प्रत्येक सबव्यू ASIHTTPRequest lib के माध्यम से इंटरनेट वेब सेवा से कुछ डेटा लोड करता है।
मुझे लगता है कि मीडिया प्लेयर सभी प्रारंभिक कनेक्शन समाप्त करने के लिए इंतज़ार कर रहा है और उसके बाद ही यह वीडियो शुरू करना है ...
कैसे मैंने पहले मुख्य दृश्य लोड किया जाता है खेलने के लिए वीडियो के लिए मजबूर कर सकते हैं? या शायद मैं मुख्य XIB की लोडिंग में देरी कर सकता हूं?
इस कोड को धन्यवाद, मुझे लगता है कि लगता है: यहां कुछ नमूना कोड, सवाल से अनुकूलित है यह एक अच्छा कामकाज है :) हालांकि मुझे समझ में नहीं आता कि खिलाड़ी सभी कनेक्शन के लिए क्यों इंतजार कर रहा है ... – WASD42