Вам нужно будет определить, когда AVPlayer готов к воспроизведению вашего медиа-файла.Дайте мне знать, если вы не знаете, как это сделать.
Однако, как только медиа-файл загружен, вы можете использовать этот метод:
#import <AVFoundation/AVFoundation.h>
/**
* Get the duration for the currently set AVPlayer's item.
*/
- (CMTime)playerItemDuration {
AVPlayerItem *playerItem = [mPlayer currentItem];
if (playerItem.status == AVPlayerItemStatusReadyToPlay) {
return [[playerItem asset] duration];
}
return(kCMTimeInvalid);
}
Когда вы используете этот методВажно понимать (потому что вы потоковое содержимое), что значение длины может быть недопустимым или что-то в этом роде.Поэтому вы должны проверить это, прежде чем использовать его для обработки.
CMTime playerDuration = [self playerItemDuration];
if (CMTIME_IS_INVALID(playerDuration)) {
return;
}
double duration = CMTimeGetSeconds(playerDuration);