Avplayer视频播放方法

问题描述:

我正在开发应用程序,在其中显示当前播放时间和视频总时间。我得到了总时间。现在显示当前播放时间将调用哪个方法。谁能帮忙?我已经使用avplayer。这是代码:Avplayer视频播放方法

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    [self.avplayer pause]; 
    self.avplayer = [AVQueuePlayer playerWithURL:[NSURL URLWithString:@""]]; 
    self.avplayer = nil; 
} 
- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:NO]; 

    AVPlayerItem *currentItem = self.avplayer.currentItem; 
    CMTime duration = currentItem.duration; //total time 
    CMTime currentTime = currentItem.currentTime; //playing time 

    NSUInteger durationSeconds = (long)CMTimeGetSeconds(duration); 
    NSUInteger minutes = floor(durationSeconds % 3600/60); 
    NSUInteger seconds = floor(durationSeconds % 3600 % 60); 
    NSString *time = [NSString stringWithFormat:@"%02ld:%02ld", (unsigned long)minutes, (unsigned long)seconds]; 
    NSLog(@"Time|%@", time); 
    lblTotaltime.text = time; 


    NSUInteger durationSeconds1 = (long)CMTimeGetSeconds(currentTime); 
    NSUInteger minutes1 = floor(durationSeconds1 % 3600/60); 
    NSUInteger seconds1 = floor(durationSeconds1 % 3600 % 60); 
    NSString *time1 = [NSString stringWithFormat:@"%02ld:%02ld", (unsigned long)minutes1, (unsigned long)seconds1]; 
    NSLog(@"Time|%@", time1); 
    lblRemaningTime.text = time1; 
} 

#pragma mark PlayerMethods 
- (void)itemDidFinishPlaying:(NSNotification *)notification { 
    AVPlayerItem *player = [notification object]; 
    [player seekToTime:kCMTimeZero]; 

} 
- (void)playerItemDidReachEnd:(NSNotification *)notification { 

    AVPlayerItem *p = [notification object]; 
    [p seekToTime:CMTimeMake(0, 3)]; 
} 

- (void)playerStartPlaying 
{ 
    [self.avplayer play]; 
} 
+0

显示您的尝试密码 –

您可以通过使用AVPlayerItem

AVPlayerItem *getcurrentItem = yourAVPlayerName.currentItem; 

currentItem属性获取当前出场时间,得到总持续时间

CMTime fullDuration = getcurrentItem.duration; 

用于获取当前时间

CMTime playercurrentTime = getcurrentItem.currentTime; 

备用

NSTimeInterval playercurrentTime = CMTimeGetSeconds(getcurrentItem.currentTime); 
NSLog(@" get current Time of video :%f ",playercurrentTime); 
+0

我得到了持续时间。但我完全不知道在哪里编写显示视频当前播放时间的代码 – Niharika

+0

@Niharika - 如果您的yourAVPlayerName在视频开始后是全球性的,您将获得此信息,您可以在类中的任何位置使用 –

+0

downvote的原因,如果downvote是合理的,我会更新我的回答 –