2013-02-24 35 views
5

Tôi đang cố gắng lấy tệp video .mov cơ bản để phát bằng mã bên dưới, nhưng khi nút tôi đã gán tác vụ được nhấn, điều duy nhất hiển thị là khung màu đen, nhưng không có video nào được phát. Bất kỳ trợ giúp được đánh giá cao. Cảm ơn.Tại sao MPMoviePlayerController của tôi không phát?

@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

nó hiển thị một màn hình màu đen trắng? –

Trả lời

13

Giả định điều kiện tiên quyết: dự án của bạn đang sử dụng ARC.

Ví dụ MPMoviePlayerController của bạn chỉ là cục bộ và ARC không có cách nào để nói rằng bạn cần giữ lại trường hợp đó. Vì bộ điều khiển không được giữ lại theo quan điểm của nó, kết quả là trường hợp MPMoviePlayerController của bạn sẽ được giải phóng trực tiếp sau khi thực hiện phương thức thực thi phương thức playMovie của bạn.

Để khắc phục sự cố đó, chỉ cần thêm thuộc tính cho phiên bản trình phát vào lớp SRViewController của bạn và gán phiên bản cho thuộc tính đó.

Tiêu đề:

@instance SRViewController 

    [...] 

    @property (nonatomic,strong) MPMoviePlayerController *player; 

    [...] 

@end 

Thực hiện:

@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

Câu trả lời hay! Cảm ơn! Tôi đã tải video ngay bây giờ, nhưng khi phát, video chỉ phát âm thanh. Tôi không chắc vấn đề là gì, vì vậy mọi trợ giúp sẽ được đánh giá cao. Cảm ơn! – INsanEWay

+0

OK ... Tôi đã giải quyết được sự cố ... codec của video chỉ là sai. – INsanEWay

+0

Đây là một câu trả lời tuyệt vời và nên được chấp nhận. –

Các vấn đề liên quan