2011-03-22 20 views
8

मेरे आईफोन ऐप में यूआई बटन है, जब क्लिक किया जाता है, तो मूवी चलाता है।एक पूर्ण स्क्रीन मोड में MPMoviePlayerController जोड़ना?

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlModeDefault; 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

मैं पूर्ण स्क्रीन मोड में खोलने के लिए फिल्म, तरीका है कि सभी फिल्मों आईओएस 3.2 अद्यतन, जहां नीले "हो गया" से पहले की बटन चाहते हैं: फिल्म खेलने के लिए कोड इस तरह दिखता है शीर्ष बाएं कोने में था, और वीडियो डिफ़ॉल्ट रूप से लैंडस्केप मोड में खेला गया था।

क्या कोई यह जानता है कि यह कैसे करें? धन्यवाद।

उत्तर

17

कि self.view मानते हुए पूरे स्क्रीन उपयोग कर रहा है:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

अब यह सोचते हैं कि आप मूल रूप से न वर्तमान self.view उपयोग करना चाहते हैं, लेकिन बस इसे फुलस्क्रीन में काम कर रहा है (मैं इस फोन; fake- पूर्णस्क्रीन क्योंकि यह पूर्णस्क्रीन-संपत्ति का आह्वान नहीं करता है);

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
[moviePlayer.view setFrame:backgroundWindow.frame]; 
[backgroundWindow addSubview:moviePlayer.view]; 
[moviePlayer play]; 
+0

धन्यवाद! असल में, self.view पूर्णस्क्रीन नहीं है। क्या आप जानते हैं कि मैं वीडियो को पूर्णस्क्रीन के रूप में कैसे सेट करूं? – rottendevice

+3

ओह रुको, मुझे यह मिला। '[मूवीप्लेयर सेटफुलस्क्रीन: हाँ एनिमेटेड: हाँ];' – rottendevice

+0

ओह ... फिर से प्रतीक्षा करें! उस रेखा को प्लग करने से वीडियो को परिदृश्य में लोड होने से रोकता है। कोई आईडिया कि इसे कैसे किया जाए? – rottendevice

11

मैं इसे MPMoviePlayerController के बजाय MPMoviePlayerViewController उपयोग कर रहा है को हल करने का सबसे अच्छा तरीका लगता है।

MPMoviePlayerViewController कक्षा पूर्ण स्क्रीन फिल्मों को प्रदर्शित करने के लिए एक साधारण दृश्य नियंत्रक लागू करती है। एक फिल्म को तुरंत प्रस्तुत करने के लिए MPMoviePlayerController ऑब्जेक्ट का उपयोग करने के विपरीत, आप मूवी प्लेयर व्यू-कंट्रोलर को शामिल कर सकते हैं, जहां भी आप आमतौर पर व्यू-कंट्रोलर का उपयोग करेंगे।

मूवी प्लेयर व्यू कंट्रोलर को आम तौर पर प्रस्तुत करने के लिए, आप आम तौर पर presentMoviePlayerViewControllerAnimated: विधि का उपयोग करते हैं। इस विधि UIViewController वर्ग पर एक वर्ग का हिस्सा है और Media Player framework द्वारा कार्यान्वित किया जाता। presentMoviePlayerViewControllerAnimated: विधि वीडियो सामग्री प्रस्तुत करने के लिए मानक संक्रमण एनिमेशन का उपयोग करके मूवी प्लेयर व्यू कंट्रोलर प्रस्तुत करती है। एक रीति से प्रस्तुत मूवी प्लेयर दृश्य नियंत्रक को खारिज करने के dismissMoviePlayerViewControllerAnimated विधि कॉल।

+2

हां, 'MPMoviePlayerViewController' का उपयोग करके बहुत सारे कोड लिखने की आवश्यकता कम हो जाती है। – Raptor

संबंधित मुद्दे