【发布时间】:2013-08-13 08:14:36
【问题描述】:
我正在使用两个播放器,一个是MPMoviePlayerController,另一个是AVPlayer。无论何时寻找MPMoviePlayerController,它都会将时间设置为AVPlayer。一切正常。在将 MPMoviePlayerController 当前时间转换为 CMTime 时,它正在四舍五入 ex:(如果 mpplayer 时间为 11.80132,则四舍五入为 11)。
不四舍五入,如何将时间设置为AVPlayer?
获取mpplayer时间并发送到AVPlayer类的代码
[avplayerClass setCurrentTime:[self.videoPlayer currentPlaybackTime]];
NSLog(@"CurrentTime:%f",[self.videoPlayer currentPlaybackTime]);//11.801345
AVPlayer 类中的代码并将时间转换为CMTime
-(void)setCurrentTime:(NSTimeInterval)seekTime
{
CMTime seekingCM = CMTimeMake(seekTime, 1);
[self.player seekToTime:seekingCM
toleranceBefore:kCMTimeZero
toleranceAfter:kCMTimePositiveInfinity];
[self.player seekToTime:seekingCM];
NSLog(@"Current time123ns%%%%%%:%f",CMTimeGetSeconds(seekingCM));//11
NSLog(@"Current time123ns%%%%%%:%f",seekTime);//11.801345
}
【问题讨论】:
-
得到答案 如果我替换 CMTime seekCM = CMTimeMake(seekTime, 1);用这个 CMTime seekCM = CMTimeMakeWithSeconds(seekTime, 1000000);它工作正常
-
您应该将其发布为答案。
-
这个数字有常数吗?
标签: objective-c mpmovieplayercontroller avplayer nstimeinterval cmtime