AvPlayer seekToTime问题

时间:2014-08-13 12:49:44

标签: ios objective-c avplayer

我正致力于视频应用并在AVPlayer上播放视频。但问题是我在UISlider的帮助下在特定时间寻找视频。播放器seekToTime方法在integer中获取时间值,但我希望它在float中获取。请帮忙 这是我的代码

Float32 sliderValue = (float) avPlayerSlider.value;
[mPlayer seekToTime:CMTimeMake(sliderValue, 1) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];

2 个答案:

答案 0 :(得分:3)

您可以设置适当的时间刻度。

CMTimeMake(12345, 10000); //This is 1.2345 seconds 

或使用定义的时间刻度

#define NSEC_PER_USEC   1000ull     /* nanoseconds per microsecond */
#define USEC_PER_SEC    1000000ull  /* microseconds per second */
#define NSEC_PER_SEC    1000000000ull   /* nanoseconds per second */
#define NSEC_PER_MSEC   1000000ull  /* nanoseconds per millisecond */

在我的播放器应用中,我使用了这样的对话:

CMTime thumbTime = CMTimeMakeWithSeconds(self.currentPlaybackTime, NSEC_PER_SEC);

答案 1 :(得分:0)

我也一直受到这个问题的困扰,修复它和下面的代码:

[_playerItem cancelPendingSeeks];
[_player seekToTime:CMTimeMakeWithSeconds(leftPosition, NSEC_PER_SEC) toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];

leftPosition(CGFloat)是资产的时间,单位是秒。

我希望可以帮到你