我有ipad应用程序,其中我播放视频我希望当用户播放视频时,如果它观看视频2秒,那么它应该显示提醒用户观看视频或持续时间的时间
这是我用来播放视频的代码。
[[mp moviePlayer] prepareToPlay];
[[mp moviePlayer] setUseApplicationAudioSession:NO];
[[mp moviePlayer] setShouldAutoplay:YES];
[[mp moviePlayer] setControlStyle:2];
//[[mp moviePlayer] setRepeatMode:MPMovieRepeatModeOne];
[self presentMoviePlayerViewControllerAnimated:mp];
答案 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)
currentPlaybackTime :对于从服务器直播的内容,此值表示播放列表首次加载时的开头时间。