2013-04-08 10 views
7

मैं आईओएस ऐप (स्टोरीओर्ड के साथ) पर काम कर रहा हूं। मैं एक ViewController है:आईओएस MPMoviePlayerViewController अंतहीन लोड हो रहा है

//movieViewController.h 

#import <UIKit/UIKit.h> 
#import <MediaPlayer/MediaPlayer.h> 

@interface movieViewController : UIViewController { 

    MPMoviePlayerViewController *moviePlayer; 

} 

@property (strong, nonatomic) MPMoviePlayerViewController *moviePlayer; 
-(void) playMovie; 

@end 


//movieViewController.m 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view. 
    [self playMovie]; 
} 

-(void)playMovie 
{ 
    NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"movie" 
                 ofType:@"mov"]; 

    moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL 
                fileURLWithPath:videoPath]]; 
[self presentMoviePlayerViewControllerAnimated:moviePlayer]; 
} 

जब मैं चलाने मैं एक "लोड हो रहा है ..." कि हमेशा के लिए ले जाता है के साथ अपने ViewController देखते हैं। enter image description here

+1

आप लागू [आत्म playMovie] से पहले viewDidAppear कॉल का इंतजार नहीं करना चाहिए? – sixthcent

उत्तर

1

आप -prepareToPlay और/या -play फोन करना चाहिए। प्रति MPMoviePlayerController के प्रलेखन:

, आईओएस 5.0 में शुरू क्रम महीन सुक्ष्म प्लेबैक नियंत्रण की सुविधा के लिए, एक नई फिल्म खिलाड़ी स्वचालित रूप से खेलने के लिए तैयार नहीं है।

+0

आप MPMoviePlayerController और MPMoviePlayerViewController को मिश्रित कर रहे हैं। – Till

+1

MPMoviePlayerViewController में 'मूवीप्लेयर' प्रॉपर्टी है जो MPMoviePlayerController ऑब्जेक्ट है। – zadr

+0

यह वास्तव में सच है लेकिन ओपी के लिए पूछे जाने वाले कार्यों को प्राप्त करने के लिए उस संपत्ति तक पहुंचने की कोई आवश्यकता नहीं है। MPMoviePlayerViewController बॉक्स से बाहर करता है। – Till

0
-(IBAction)startVideo:(id)sender 
{ 
    NSURL *video = [[NSURL alloc] initWithString:@"http://www.w3schools.com/html/movie.mp4"]; 
    MPMoviePlayerViewController *controller = [[MPMoviePlayerViewController alloc]initWithContentURL:video]; 
    controller.view.frame = CGRectMake(20, 50, 280, 180); 

    controller.moviePlayer.view.center = self.view.center; 
    [self.view addSubview:controller.view]; 

    [controller.moviePlayer prepareToPlay]; 
    [controller.moviePlayer play]; 
}
+1

हिट करता है क्या आप अपने समाधान की व्याख्या करने के लिए कुछ पाठ जोड़ सकते हैं? – GHC

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