如何跟踪在ipad应用中播放的持续时间视频

时间:2013-08-19 05:40:14

标签: iphone ios video

我有ipad应用程序,其中我播放视频我希望当用户播放视频时,如果它观看视频2秒,那么它应该显示提醒用户观看视频或持续时间的时间

这是我用来播放视频的代码。

            [[mp moviePlayer] prepareToPlay];
    [[mp moviePlayer] setUseApplicationAudioSession:NO];
    [[mp moviePlayer] setShouldAutoplay:YES];
    [[mp moviePlayer] setControlStyle:2];
    //[[mp moviePlayer] setRepeatMode:MPMovieRepeatModeOne];
    [self presentMoviePlayerViewControllerAnimated:mp];

4 个答案:

答案 0 :(得分:1)

MPMoviePlayerController生成通知,让您的应用程序了解电影播放的状态。

1,当电影播放器​​开始播放,暂停或开始向前或向后搜索时 2,AirPlay播放开始或结束时。有关详细信息,请click here

使用通知并收集currentPlaybackTime属性和视频持续时间属性以进行进一步计算。

- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification
{
    if ((player.loadState & MPMovieLoadStatePlaythroughOK) == MPMovieLoadStatePlaythroughOK)
    {
        NSLog(@"content play length is %g seconds", player.duration);
    }
}

答案 1 :(得分:0)

您可以录制开始日期和结束日期,然后比较日期以查看视频的播放时长。

日期也包括时间。

所以:

1)当用户按下播放时,你可以去:

NSDate *startPlayDate = [NSDate date];

2)当用户停止播放视频时,您可以:

NSDate *stopPlayDate = [NSDate date];

3)现在比较两个日期的差异,您应该看到用户播放视频的秒数:

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];

NSDateComponents* components = [gregorianCalendar components: NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit
                                                    fromDate:startPlayDate 
                                                      toDate:stopPlayDate 
                                                     options:0] ;

NSString *message = [[NSString alloc] initWithFormat:@"Video played for: %d hours, %d minutes, %d seconds", components.hour, components.minute, components.second];

UIAlert *alert = [[UIAlertView alloc] initWithTitle:@"Duration"
                                            message:message
                                           delegate:self
                                       cancelButton:@"OK"
                                        otherButton:nil, nil];

[alert show];

那是你在找什么?

答案 2 :(得分:0)

currentPlaybackTime协议中的MPMediaPlayback属性为您提供了该信息。

查看currentPlaybackTime协议的MPMediaPlayback属性。 MPMoviePlayerController遵守该协议,因此您可以直接在该类的任何实例上使用它。

MPMoviePlayerController *player = [...];
[...]
NSLog(@"current time: %g", player.currentPlaybackTime);
From the MPMediaPlayback Reference;

currentPlaybackTime 播放头的当前位置。

@property(nonatomic) NSTimeInterval currentPlaybackTime

答案 3 :(得分:0)

查看MPMediaPlayback Protocol

  

currentPlaybackTime :对于从服务器直播的内容,此值表示播放列表首次加载时的开头时间。