【发布时间】:2016-02-09 11:12:56
【问题描述】:
我正在尝试设置一个进度条和一个标签来指示正在播放的 mp3 文件的百分比。我需要设置 NSTimer 函数还是可以使用 AVFoundation 来设置?
【问题讨论】:
-
这是
AVAudioPlayer而不是AVPlayer你错误地标记了问题
标签: swift2 progress-bar ios9 nstimer avaudioplayer
我正在尝试设置一个进度条和一个标签来指示正在播放的 mp3 文件的百分比。我需要设置 NSTimer 函数还是可以使用 AVFoundation 来设置?
【问题讨论】:
AVAudioPlayer 而不是AVPlayer 你错误地标记了问题
标签: swift2 progress-bar ios9 nstimer avaudioplayer
使用 AVFoundation 提供的以下信息来完成您想要的。使用 mp3 文件的持续时间,您可以通过使用 mp3 文件创建 AVAsset 来获得。并使用AVAudioPlayer.currentTime获取当前播放音频文件的当前播放位置。定期检查currentTime的值并相应更新进度条。您可以使用while-loop 不断检查currentTime,这将使进度条看起来平滑增加。您也可以使用 NSTimer,但根据您的时间间隔,进度条可能不会平滑增加,但可能会显得突然。
您也可以使用AVPlayer 或AVQueuePlayer 代替AVAudioPlayer。有了这些,您将创建一个AVPlayerItem,您可以从中通过AVPlayer.currentItem.duration 获取当前歌曲的持续时间。
【讨论】:
var currentTime = Int(AVAudioPlayer.currentTime) 给我一个错误:\Instance member 'currentTime' cannot be used on type 'AVAudioPlayer'
let currentTime = Int(self.reproductor.currentTime)已经奏效。再次感谢。
AVAudioPlayer 标签或AVPlayer 标签发布另一个问题,我经常阅读这些内容