【问题标题】:Adding a progressbar to mp3 AVAudioPlayer playing swift向 mp3 AVAudioPlayer 添加进度条播放 swift
【发布时间】:2016-02-09 11:12:56
【问题描述】:

我正在尝试设置一个进度条和一个标签来指示正在播放的 mp3 文件的百分比。我需要设置 NSTimer 函数还是可以使用 AVFoundation 来设置?

【问题讨论】:

  • 这是AVAudioPlayer 而不是AVPlayer 你错误地标记了问题

标签: swift2 progress-bar ios9 nstimer avaudioplayer


【解决方案1】:

使用 AVFoundation 提供的以下信息来完成您想要的。使用 mp3 文件的持续时间,您可以通过使用 mp3 文件创建 AVAsset 来获得。并使用AVAudioPlayer.currentTime获取当前播放音频文件的当前播放位置。定期检查currentTime的值并相应更新进度条。您可以使用while-loop 不断检查currentTime,这将使进度条看起来平滑增加。您也可以使用 NSTimer,但根据您的时间间隔,进度条可能不会平滑增加,但可能会显得突然。

您也可以使用AVPlayerAVQueuePlayer 代替AVAudioPlayer。有了这些,您将创建一个AVPlayerItem,您可以从中通过AVPlayer.currentItem.duration 获取当前歌曲的持续时间。

【讨论】:

  • 对我来说太难了(我是 swift 新手)。不管怎么说,还是要谢谢你。代码:var currentTime = Int(AVAudioPlayer.currentTime) 给我一个错误:\Instance member 'currentTime' cannot be used on type 'AVAudioPlayer'
  • 将该代码更改为let currentTime = Int(self.reproductor.currentTime)已经奏效。再次感谢。
  • 没问题,如果需要更多帮助,请告诉我或使用AVAudioPlayer 标签或AVPlayer 标签发布另一个问题,我经常阅读这些内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多