How to get file size and current file size from NSURL for AVPlayer iOS4.0
self.player = [[AVPlayer playerWithURL:[NSUR开发者_运维知识库L URLWithString:@"http://myurl.com/track.mp3"]] retain];
I am trying make a UIProgressView for the above track. How do I obtain the file size and current file size from that URL? Please help, thanks!
You need to start observing the loadedTimeRanges property of the current item, like this:
AVPlayerItem* playerItem = self.player.currentItem;
[playerItem addObserver:self forKeyPath:kLoadedTimeRanges options:NSKeyValueObservingOptionNew context:playerItemTimeRangesObservationContext];
Then, in the observation callback, you make sense of the data you're passed like this:
-(void)observeValueForKeyPath:(NSString*)aPath ofObject:(id)anObject change:(NSDictionary*)aChange context:(void*)aContext {
if (aContext == playerItemTimeRangesObservationContext) {
AVPlayerItem* playerItem = (AVPlayerItem*)anObject;
NSArray* times = playerItem.loadedTimeRanges;
// there is only ever one NSValue in the array
NSValue* value = [times objectAtIndex:0];
CMTimeRange range;
[value getValue:&range];
float start = CMTimeGetSeconds(range.start);
float duration = CMTimeGetSeconds(range.duration);
_videoAvailable = start + duration; // this is a float property of my VC
[self performSelectorOnMainThread:@selector(updateVideoAvailable) withObject:nil waitUntilDone:NO];
}
Then the selector on the main thread updates a progress bar, like so:
-(void)updateVideoAvailable {
CMTime playerDuration = [self playerItemDuration];
double duration = CMTimeGetSeconds(playerDuration);
_videoAvailableBar.progress = _videoAvailable/duration;// this is a UIProgressView
}
I think you do not want to know anything about file-sizes, but you're more interested in times.
Try self.player.currentItem.asset.duration
for duration of currently playing item, self.player.currentTime
for current time.
@"loadedTimeRange" is a KVO value for the AVPlayerItem class. You can find its definition in the AVPlayerItem.h file in the
@interface AVPlayerItem (AVPlayerItemPlayability)
category definition.
精彩评论