我正在实施一个视频播放器,我已经使用UISlider来跟踪电影的进度。这意味着当电影结束时滑块的拇指应该处于最大值。
我无法实现这一目标。电影在拇指到达之前完成。有人可以帮我理解可能出现的问题吗?
这是我写的代码:
//I'm setting the min, max values of the UISlider and calculating the current value
progressBar.minimumValue = 0.0;
progressBar.maximumValue = (float)movie.duration;
progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;
答案 0 :(得分:0)
不应该只是:progressBar.value =(float)movie.currentPlaybackTime?
我的意思是,假设电影持续时间是60秒,电影是15秒(这是当前播放时间,我猜)
这样:
进度条最小值为0
进度条最大值为60
进度条值应介于0到60之间,这是电影现在的值:15。
编辑: 你还应该使用: - setValue:animated:
另一个想法:也许你不在主线上。进行ui更改时,请确保您在主线程上
答案 1 :(得分:0)
只需使用progressBar.value = (float)movie.currentPlaybackTime;
代替progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;
答案 2 :(得分:0)
最大值应等于帧宽:
progressBar.minimumValue = 0.0;
progressBar.maximumValue = progressBar.frame.size.width;
progressBar.value = ((float)movie.currentPlaybackTime/(float)movie.duration) * progressBar.frame.size.width;