Korzystanie z AVMutableComposition iPhone
Używam poniższego kodu do sekwencyjnego przesyłania strumieniowego dwóch filmów. Ale nie pokazuje żadnego wideo w symulatorze, jest całkowicie puste.
Jak mogę szukać tych dwóch filmów. Na przykład, jeśli jedno wideo trwa 2 minuty, a drugie 3 minuty. Teraz muszę uzyskać całkowity czas tych filmów i przeszukiwać je. Po przesunięciu suwaka do 4 minut, drugie wideo powinno być odtwarzane od 2 minuty do przodu.
Czy to możliwe?
<code>- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSURL *url1 = [NSURL URLWithString:@"http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold%20Kumar%203%20Christmas%20bionic.mp4"]; NSURL *url2 = [NSURL URLWithString:@"http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold%20Kumar%203%20Christmas%20tablet.mp4"]; NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey]; AVMutableComposition *composition = [[AVMutableComposition alloc] init]; asset1 = [[AVURLAsset alloc] initWithURL:url1 options:options]; AVURLAsset * asset2 = [[AVURLAsset alloc]initWithURL:url2 options:options]; CMTime insertionPoint = kCMTimeZero; NSError * error = nil; composition = [AVMutableComposition composition]; if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset1.duration) ofAsset:asset1 atTime:insertionPoint error:&error]) { NSLog(@"error: %@",error); } insertionPoint = CMTimeAdd(insertionPoint, asset1.duration); if (![composition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset2.duration) ofAsset:asset2 atTime:insertionPoint error:&error]) { NSLog(@"error: %@",error); } AVPlayerItem * item = [[AVPlayerItem alloc] initWithAsset:composition]; player = [AVPlayer playerWithPlayerItem:item]; AVPlayerLayer * layer = [AVPlayerLayer playerLayerWithPlayer:player]; [layer setFrame:CGRectMake(0, 0, 320, 480)]; [[[self view] layer] addSublayer:layer]; [player play]; } </code>
Czy ktoś może mi powiedzieć, że jaki jest błąd w moim kodzie?