ios - AVPlayer seekToTime 不正确使用 UISlider

标签 ios avplayer uislider

- (void)viewDidLoad {
    [super viewDidLoad];
    self.slider.maximumValue = 30;
}

- (void)slide:(UISlider *)slider {
    NSLog(@"....progress  slider value:%d", (int)slider.value);
    CMTime showingTime = CMTimeMakeWithSeconds((int)slider.value, 1);
    [self.player seekToTime:showingTime];
}

每次我滑动 UISlider 时,控制台都会在我滑动时记录正确的数字。像 6 秒。但是 slider 会跳回 0;如果我将它滑动到大于 10 的值,比如 14,它会滑回 10。

有谁能够帮助我 ?谢谢

最佳答案

试试这个。

首先,您必须根据 UISlider 的值初始化一个 CMTime 对象。然后调用 AVPlayer 对象的 seek to time 方法。将 CMTime 对象作为参数传递。

CMTime showingTime = CMTimeMake(slider.value *1000, 1000);

[self.player seekToTime:showingTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];

关于ios - AVPlayer seekToTime 不正确使用 UISlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237386/

相关文章:

iphone - 在后台播放视频

ios - 带 AVPlayerLayer 的全屏

ios - 使用 avplayer 播放 AES 加密的 hls 流 - ios swift

iphone - 在 iPhone 应用程序中自定义 UISlider 的颜色

ios - 具有自定义轨道图像/颜色的水平和垂直滑动条

ios - 如何在 TableView 或标签中提取和显示必要的数据

iPhone iOS 如何创建交互式拖动、旋转、调整大小、删除 View 控件?

ios - 阴影在 "sibling" View 顶部不可见

objective-c - iOS 检查远程服务器 plist 文件是否是本地存储文件的新版本?

iphone - 不要传递 UISlider 上的触摸