2016-01-13 33 views
0

我有一个进度视图,表示音轨在播放时的播放/进度。当然,1.0表示完成该进度视图的100%。我需要完成的是在整个音轨期间进度视图的进度逐渐增加 - 在音轨完成的同时需要达到100%进度(进度= 1.0)。我也有音轨的持续时间值。我感到困惑的是数学或如何根据音轨的持续时间逐渐增加进度视图的进度。UIProgressView progess在音频结束时完成

注:我将有一个音频曲目阵列具有不同的持续时间。另外,我正在使用AVPlayer播放这些音轨。

任何帮助将不胜感激。提前致谢。

+0

看看这个https://github.com/jdg/MBProgressHUD他们有一个进度条模块,可能对你有用 –

+0

我检查过MBProgressHUD了。我更多 - 所以寻找数学来实现我期待的@RicardoAlves –

回答

0

做一些更多的挖掘后,我相信接近它这种方式将工作:

AVPlayerItem *currentItem = yourAVPlayer.currentItem; 

CMTime duration = currentItem.duration; //total time 
CMTime currentTime = currentItem.currentTime; //playing time 

然后在更新方法...

progressView.progress = (CGFloat)currentTime/(CGFloat)duration; 

可有人请证实这是否会工作因为此刻我不在我的工作站。

0

更简单的方法是允许设置进度视图的最大值和最小值。例如,在我的应用程序中,我使用UISlider来显示进度。当用户选择要播放的曲目,我设置滑块的最小值和最大值如下:

_slider.minimumValue = 0; 
_slider.maximumValue = itemDuration; 

进度值则只是球员的当前时间。

[_slider.value setValue:currentPlayerTime animated:YES]; 

你不说如果你的进度视图使用UISlider,但即使没有,你也可以使用这种方法。

相关问题