2013-02-24 48 views
5

मैं नीचे दिए गए कोड का उपयोग कर खेलने के लिए एक बुनियादी .mov वीडियो फ़ाइल पाने के लिए कोशिश कर रहा हूँ, लेकिन जब बटन मैं कार्रवाई सौंपा है दबाया जाता है, केवल एक चीज है जो बताता है कि काले फ्रेम है, लेकिन कोई वीडियो नहीं चलता। किसी भी मदद की सराहना की है। धन्यवाद।मेरा MPMoviePlayerController क्यों नहीं खेलेंगे?

@implementation SRViewController 

-(IBAction)playMovie{ 
    NSString *url = [[NSBundle mainBundle] 
        pathForResource:@"OntheTitle" ofType:@"mov"]; 
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] 
             initWithContentURL: [NSURL fileURLWithPath:url]]; 

    // Play Partial Screen 
    player.view.frame = CGRectMake(10, 10, 720, 480); 
    [self.view addSubview:player.view]; 

    // Play Movie 
    [player play]; 
} 

@end 
+0

यह एक खाली काली स्क्रीन दिखाता है? –

उत्तर

13

ग्रहण पूर्व शर्त: अपनी परियोजना एआरसी उपयोग कर रहा है।

आपका MPMoviePlayerController उदाहरण स्थानीय केवल और एआरसी से कहा कि आपको लगता है कि उदाहरण बनाए रखने की आवश्यकता का कोई रास्ता नहीं है। के रूप में नियंत्रक उसके दृश्य द्वारा बनाए रखा नहीं है, नतीजा यह है कि आपके MPMoviePlayerController उदाहरण आपके playMovie विधि निष्पादन के निष्पादन के बाद सीधे जारी किया जाएगा है।

कि इस मुद्दे को ठीक करने के लिए, बस अपने SRViewController वर्ग के लिए खिलाड़ी उदाहरण के लिए एक संपत्ति जोड़ सकते हैं और है कि संपत्ति के प्रति उदाहरण आवंटित।

हैडर:

@instance SRViewController 

    [...] 

    @property (nonatomic,strong) MPMoviePlayerController *player; 

    [...] 

@end 

कार्यान्वयन:

@implementation SRViewController 

    [...] 

    -(IBAction)playMovie 
    { 
     NSString *url = [[NSBundle mainBundle] 
         pathForResource:@"OntheTitle" ofType:@"mov"]; 
     self.player = [[MPMoviePlayerController alloc] 
              initWithContentURL: [NSURL fileURLWithPath:url]]; 

     // Play Partial Screen 
     self.player.view.frame = CGRectMake(10, 10, 720, 480); 
     [self.view addSubview:self.player.view]; 

     // Play Movie 
     [self.player play]; 
    } 

    [...] 

@end 
+0

महान जवाब! धन्यवाद! मुझे अब वीडियो लोड करने के लिए मिला है, लेकिन जब यह खेलता है, तो यह केवल ऑडियो चलाता है। मुझे यकीन नहीं है कि समस्या क्या है, इसलिए किसी भी मदद की सराहना की जाएगी। धन्यवाद! – INsanEWay

+0

ठीक है ... मैं समस्या हल ... वीडियो के कोडेक सिर्फ गलत था। – INsanEWay

+0

यह एक उत्कृष्ट उत्तर है और इसे स्वीकार किया जाना चाहिए। –