音频 - 向前跳 30 秒
Posted
技术标签:
【中文标题】音频 - 向前跳 30 秒【英文标题】:Audio - Jump Forward 30 Seconds 【发布时间】:2015-03-08 22:15:29 【问题描述】:我有一个音频播放器,可以播放从 Core Date 检索到的音频。播放和暂停工作正常。我正在尝试实现一个“向前跳转 30 秒”按钮,并寻求任何关于我将如何去做的指针。
“播放/暂停”按钮的代码
@IBAction func playPressed(sender: AnyObject)
let play = UIImage(named: "play")
let pause = UIImage(named: "pause")
if audioPlayer.playing
pauseAudioPlayer()
audioPlayer.playing ? "\(playButton.setImage( pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))"
else
playAudio()
audioPlayer.playing ? "\(playButton.setImage( pause, forState: UIControlState.Normal))" : "\(playButton.setImage(play , forState: UIControlState.Normal))"
【问题讨论】:
你看过这篇文章吗? ***.com/a/38658769/464016 AVPlayer seekToTime does not play at correct position的可能重复 【参考方案1】:在 swift 3 中:
player.play()
player.currentTime=60
单位是秒 根本不需要停下来
【讨论】:
这是这里唯一正确的答案。player.play(atTime: ...)
将播放延迟一定时间。要快进 30 秒,只需执行 player.currentTime += 30
【参考方案2】:
对于 ios,我们需要使用 CMTime。只有 CMTime 可以提供给玩家,以便从当前位置向前或向后跳跃。现在,如果播放器正在运行任何流,则可以使用播放器的 currentTime 属性获得当前流位置。
祝你好运。如果您对此有任何其他问题,请告诉我。
【讨论】:
【参考方案3】:获取播放器的当前时间,加上当前时间的30s。然后使播放器在该时间播放(当前时间+30)。
var currentTime = player.currentTime
player.playAtTime(currentTime + 30.0)
如果你想使用滑块来改变当前时间,你可以使用player.currentTime = TimeInterval(slider.value) * player.duration
来获取。
【讨论】:
【参考方案4】:这样的事情怎么样?
@IBAction func skipForward30SecondsPressed(sender: AnyObject)
var currentTime = audioPlayer.currentTime
audioPlayer.stop()
audioPlayer.playAtTime(currentTime + 30.0) // plus 30 seconds
【讨论】:
以上是关于音频 - 向前跳 30 秒的主要内容,如果未能解决你的问题,请参考以下文章