Mówisz o użyciu połączenia do generowania co Jabłko zwraca miniatury z filmów o określonych porach.
Dla MPMoviePlayerController (którego system iOS używa do przechowywania wideo z pliku lub innego źródła), są dwa polecenia, aby to zrobić. Pierwsza generuje pojedynczą miniaturę (obraz) z filmu w określonym momencie, a druga generuje zestaw miniatur dla przedziału czasowego.
Ten przykład pobiera obraz co 10 sekund do klipu filmowego, myMovie.mp4:
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc]
initWithContentURL:[NSURL URLWithString:@"myMovie.mp4"]];
UIImage *singleFrameImage = [movie thumbnailImageAtTime:10
timeOption:MPMovieTimeOptionExact];
Zauważ, że ten wykonuje synchronicznie - tj użytkownik będzie musiał zaczekać, aż pojawi się zrzut ekranu.
Inną opcją jest, aby uzyskać serię zdjęć z filmu, z tablicy czasów:
MPMoviePlayerController *movie = [[MPMoviePlayerController alloc]
initWithContentURL [NSURL URLWithString:@"myMovie.mp4"]];
NSNumber time1 = 10;
NSNumber time2 = 11;
NSNumber time3 = 12;
NSArray *times = [NSArray arrayWithObjects:time1,time2,time3,nil];
[movie requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionExact];
Ten drugi sposób spowoduje zgłoszenie typu MPMoviePlayerThumbnailImageRequestDidFinishNotification
każdym razem nowy obraz jest generowany. Możesz ustawić obserwatora, aby monitorował to i przetwarzał obraz - zostawiam cię do pracy, która zabija sama!
Dzięki !! .. to dobry pomysł .. i rozwiązać za pomocą ffmpeg, ale wa coś natywną do iOS SDK .. postaram swój pomysł – matiasfh
o pierwszej części, czy masz jakiś pomysł, jak to zrobić asynchronicznie? – bluezald
@BacalsoVincent nie zrobiłbyś pierwszego sposobu, jeśli potrzebujesz go asynchronicznie ... jeśli chcesz tylko jeden obraz, ale asynch, użyj drugiej metody z tablicą tylko raz :) – h4xxr