播放时限制音频持续时间

Limit audio duration when played

我正在尝试使用 Swift 4 构建一个可以播放不同声音的 iOS 应用程序。我需要做的部分工作是根据某些设置限制播放声音文件的持续时间。

我想知道是否可以在播放之前设置声音的持续时间,以便在设置的持续时间后停止。如果是这样,如何?

我目前正在使用Swift的AVAudioPlayer,但我不知道它是否可以做到。我当前的代码如下所示:

// resName set depending on settings

url = Bundle.main.url(forResource: resName, withExtension: "mp3")

do{
    audioPlayer = try AVAudioPlayer(contentsOf: url!)
    audioPlayer.prepareToPlay()
    audioPlayer.currentTime = 0
} catch let error as NSError{
    print(error.debugDescription)
}

audioPlayer.play()

在此先感谢您的帮助:)

作为一名音频工程师,我建议您按照自己的意愿编辑音频,以避免在编码过程中出现任何不需要的伪影。

好吧,由于您可以控制播放声音,因此处理它的一种方法是 运行 一个 Timer 当您开始播放时,它会在给定的时间段后停止播放:

let timeLimit = 1.6 // get it from settings
player.play()
Timer.scheduledTimer(withTimeInterval: timeLimit, repeats: false) { (timer) in
    player.stop()
}

如果您需要取消它,您可以保留对 timer 的引用并使用 timer.invalidate().

取消它