2011-01-02 15 views
12

Herhangi bir yardım için şimdiden teşekkür ederim, ben bir acemi ve burada herhangi bir yardım için teşekkür ederiz .. Bir film oynamak için bu kodu var ve harika çalışıyor. Birisi LÜTFEN bu film döngüsünü nasıl yapılacağını ve durmadan başlayarak tekrar oynatılabileceğini söyler (herhangi bir kod yardımcı olur). Ayrıca, 2 filmin, birbiri ardına, tercihen soluk veya yumuşak geçiş ile nasıl oynanacağını bilmek istiyorum. Eğer kaydırıcı değeri olan bir Int değişken oluşturmak ve daha sonra bir performSelector afterDelay kullanabilirsiniz zamanlayıcı için senin MPMoviePlayerController için MPMovieRepeatModeOneMPMoviePlayerController: Video döngümümü nasıl yapabilirim?

player = [[MPMoviePlayerViewController alloc] 
      initWithContentURL:[NSURL fileURLWithPath:path]]; 
player.moviePlayer.repeatMode = MPMovieRepeatModeOne; 
+0

kodunuzu dahaki sefere biçimlendirmek edin: MPMovieRepeatModeNone mod sonra sonra film oynamaya bitirdiğinde filtrelemek için seçici kurmak bildirim

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayer]; 

ekleyin. –

cevap

23

için teşekkür ederiz :

senin "myMethod"

ardından
int delayInt = 8; // Substitute the 8 for the value of your slider 
[self performSelector:@selector(myMethod) withObject:nil afterDelay:delayInt]; 

Ve

-(void) myMethod{ 
//the code to stop your player and remove view controller 
} 
+0

Yaptım ve şimdi bir satır hatası alıyorum: player.repeatMode = MPMovieRepeatModeOne; >>>> Üye 'repeatMode' isteği, bir yapı veya birlik değil - <<<< Yakın olduğumuzu düşünüyorum ... yardımcı olabilir misiniz? –

+0

@Jay Şimdi cevabımı dene, işe yaramalı. –

+0

Harika, Harika çalışıyor. Tamam bir soru daha. Filmime bir zamanlayıcı ekleyebilmem gerekiyor; Yani ayarlanmış bir süre sonra dur. Bunun için bir kaydırıcı kullanmak isterim, herhangi bir fikri nasıl ekleyebilirim? –

1

ait repeatMode özelliğini ayarlayın herhangi bir yardım

#import "MyAppViewController.h" 

@implementation MyAppViewController 

-(IBAction)button:(id)sender{ 
NSString *path = [[NSBundle mainBundle] 
     pathForResource:@"mymovie" ofType:@"mp4"]; 

player = [[MPMoviePlayerViewController alloc] 
    initWithContentURL:[NSURL fileURLWithPath:path]]; 

[self presentMoviePlayerViewControllerAnimated:player]; 

} 
20

MPMovieRepeatModeOne güzeldir, ancak videoyu çok düzgün şekilde kesmez. Aşağıda bu deneyin (başka bir yazı kopyalanan): film oyuncu kurarken (. Ben sadece iPad 3 çalıştıran iOS 5.1.1 üzerinde bu çalışma var, baz SDK iOS 5,1)

, yinelemeyi ayarlamak

- (void)moviePlayerDidFinish:(NSNotification *)note 
{ 
    if (note.object == self.moviePlayer) { 
     NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue]; 
     if (reason == MPMovieFinishReasonPlaybackEnded) 
     { 
      [self.moviePlayer play]; 
     } 
    } 
} 
+2

Benim için garip olan şey, bu simülatörde harika çalıştı, ancak bazen bir döngü içinde ve bazen sonunda takılıp kalmış bir telefon üzerinde çalışıyordu. Bir yarış koşulundan şüphe duydum (aslında film henüz tamamlanmadığında oyun denir). Oynatma yönteminin çağrısını geciktirmek için bir NSTimer eklediğimde, gerçekten de (en sonunda bir hickup ile) ilmeklemiştir, bu da optimal değildir. Belki de .mp4 dosyasının codec bileşeni yüzünden mi? – morksinaanab

+0

Kullanmak iyi bir uygulamadır: [self.moviePlayer prepareToPlay]; Bu, videonun optimize edilmesine ve istenmeyen oluşturma sorunlarının giderilmesine yardımcı olur. –

+0

Artık iOS8 + ile çalışmıyor. Boşluk repeatMode'un ayarlanması kadar uzun. – Mike

İlgili konular