Возможно ли создать объект AVAsset
с двумя URL-адресами, один для аудио и другой для видеодорожки?AVAsset с отдельными видео и аудио-адресами (iOS)
Я пробовал его с AVMutableComposition
, но, кажется, сначала загружает все содержимое и буферизует его где-нибудь, прежде чем начнется воспроизведение видео + аудио. В документации AVComposition
говорится, что файловые активы могут быть объединены, но мне нужен способ объединения ресурсов на основе url.
Или есть опция, которая может быть установлена для AVComposition
, чтобы начать воспроизведение перед загрузкой всего содержимого?
Редактировать
Это, как я попробовал:
NSDictionary *urlAssetOptions = @{AVURLAssetPreferPreciseDurationAndTimingKey: [NSNumber numberWithBool:NO]};
AVMutableComposition *composition = [AVMutableComposition composition];
NSURL *audioUrl = [NSURL URLWithString:@"http://..."];
AVURLAsset *audioAsset = [AVURLAsset URLAssetWithURL:audioUrl options:urlAssetOptions];
AVMutableCompositionTrack *audioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[audioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, audioAsset.duration) ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
NSURL *videoUrl = [NSURL URLWithString:@"http://..."];
AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:videoUrl options:urlAssetOptions];
AVMutableCompositionTrack *videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
[videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:composition];
Простейшим way..create два AVAssets. \ –
@Gagan_iOS Как я тогда должен создать объект AVPlayerItem с этими двумя AVAssets? – selcuksinan