[अद्यतन]iPhone MPMoviePlayerViewController
के रूप में सिफारिश की थी मैं सभी झुकाव का समर्थन करने के लिए सभी जनक दृश्य नियंत्रकों बदल दिया है। मेरी ऐप संरचना निम्नानुसार है: AppDelegate> रूट व्यू कंट्रोलर> वीडियो> वीडियो विवरण> MPMoviePlayerViewController।
यदि मैं इन सभी को सभी उन्मुखताओं का समर्थन करने के लिए बदलता हूं तो वीडियो परिदृश्य में खेलेंगे। लेकिन सभी उन्मुखताओं का समर्थन करना मैं नहीं चाहता हूं और अन्य मुद्दों का कारण बनता हूं। क्या कोई अन्य काम है या मैं कुछ और कर सकता हूं?
धन्यवाद
[/ अद्यतन]
मुझे लगता है कि MPMoviePlayerViewController के एक कस्टम उपवर्ग का उपयोग कर वीडियो प्रदर्शित करता है एक चित्र आधारित iPhone एप्लिकेशन की है। उपयोगकर्ता प्रेस मैं इस वर्ग का एक उदाहरण बनाने के खेल सकते हैं और यह रीति से प्रस्तुत करते हैं जब इस प्रकार है:
- (IBAction) playPressed:(id)sender {
NSString *filepath = [[NSBundle mainBundle] pathForResource:self.currentVideoModel.videoFileName ofType:@"m4v"];
NSURL *fileURL = [NSURL fileURLWithPath:filepath];
// MovieViewController is just a simple subclass of MPMoviePlayerViewController
self.moviePlayerController = [[MovieViewController alloc] initWithContentURL:fileURL];
// full screen code.
[self.moviePlayerController.moviePlayer setScalingMode:MPMovieScalingModeFill];
[self.moviePlayerController.moviePlayer setFullscreen:TRUE];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlaybackComplete:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayerController];
[self presentMoviePlayerViewControllerAnimated:self.moviePlayerController];
}
समस्या यह है कि चित्र में ठीक खेलता है, लेकिन जब मैं परिदृश्य के लिए iPhone बारी वीडियो अभी भी चित्र में खेलता है और नहीं परिदृश्य :(ऐप्लिकेशन में सभी दृश्य नियंत्रकों केवल पोर्ट्रेट ओरिएंटेशन का समर्थन
मेरे MPMoviePlayerViewController उपवर्ग केवल निम्न विधि को ओवरराइड करता उन्मुखीकरण परिवर्तन के लिए अनुमति देने के लिए, लेकिन यह नहीं को प्रभावित किया है:।
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return (toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight || toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
मैं भी हैवीडियो को प्रोग्रामेटिक रूप से घुमाए जाने की कोशिश की लेकिन पूरी तरह से कोई भाग्य नहीं है, यह हमेशा पोर्ट्रेट मोड में रहता है।
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
[self.view setTransform:CGAffineTransformMakeRotation(M_PI/2)];
return true;
}
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
[self.view setTransform:CGAffineTransformMakeRotation(M_PI * 2)];
return true;
}
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
[self.view setTransform:CGAffineTransformIdentity];
return true;
}
else return false;
}
रोटेशन समर्थन * हेरार्किकल का प्रकार है। इसलिए यदि आप मूवी प्लेयर कंट्रोलर पेश कर रहे हैं और यह आपको घूमने नहीं दे रहा है, तो मेरा पहला डिबगिंग चरण प्रत्येक व्यू कंट्रोलर को जांचना होगा जो आपके मूवी प्लेयर को 'चाहिएऑटोरोटेट..' विधि' के लिए ले जाता है और इसे 'यस वापस कर देता है; '(यदि आप बाद में अतिरिक्त परेशानी को बचाना चाहते हैं तो आप इसे बढ़ा सकते हैं)।फिर उन्हें पोर्ट्रेट पर लॉक होने तक एक बार वापस पोर्ट्रेट पर स्विच करें, और आप जानते हैं कि आपकी ओर घुमाने की कोशिश करते समय कौन सी UIIit' जांच कर रहा है। वहां से जाओ – darvids0n
@ darvids0n धन्यवाद। मैं वास्तव में चित्र के अलावा किसी भी अन्य दृश्य को समर्थन देना नहीं चाहता हूं, लेकिन मुझे लगता है कि मैं इसे आज़मा दूंगा और देखें कि क्या होता है। – bennythemink
@ darvids0n मैंने अपना प्रश्न अपडेट किया। क्या आप कुछ सुझाव दे सकते हैं? किसी भी सलाह के लिए बहुत धन्यवाद। – bennythemink