gpt4 book ai didi

ios - 在 Swift 的某个时间停止 AVAudioPlayer

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:22 24 4
gpt4 key购买 nike

我正在尝试播放一段声音片段。我如何在特定时间停止 AVAudioPlayer?

我有一个函数,当从 slider 值调用时,会将播放时间设置为给定的位置。 (songStart 和 SongEnd 只是歌曲的百分比)我可以构建什么函数来在某个点停止它?

    func setSongConstraints(songStart: Double, songEnd: Double){
audioPlayer.currentTime = audioPlayer.duration * songStart
}

我知道一个选项是设置等待计时器或其他东西,然后在该时间后调用停止。

但是,我想要允许在歌曲开始后更改歌曲结束点的功能。等待计时器在这种情况下不起作用,因为它需要在启动后进行更改。

最佳答案

可以使用 Timer检查 AVAudioPlayercurrentTime 属性对象。

例如

开始播放音频时启动计时器。根据所需的准确度级别调整检查间隔 0.1

var timer:Timer!

timer = Timer.scheduledTimerWithTimeInterval(
0.1,
target: self,
selector: "checkTime",
userInfo: nil,
repeats: true
)

然后创建计时器每 0.1 秒运行一次的函数,以根据您自己的值检查音频播放器的当前时间,其中 END_TIME 可以更新或替换为您的 songEnd逻辑。

let END_TIME = 10.0

func checkTime() {
if self.audioPlayer.currentTime >= END_TIME {
self.audioPlayer.stop()
timer.invalidate()
}
}

关于ios - 在 Swift 的某个时间停止 AVAudioPlayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com