我想在我的应用中重复一首歌。然而,它只是播放它直到结束,然后它完全停止。我怎样才能为此设置循环功能?
这是我viewDidLoad
中的代码:
do
{
let audioPath = Bundle.main.path(forResource: "APP4", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch
{
//catch error
}
let session = AVAudioSession.sharedInstance()
do
{
try session.setCategory(AVAudioSessionCategoryPlayback)
}
catch
{
}
player.play()
我正在使用Xcode 8。
答案 0 :(得分:1)
您需要设置numberOfLoops
player.numberOfLoops = 2 // or whatever
来自Apple doc:
var numberOfLoops:Int
声音将返回到开头的次数 到达终点,重复播放。
答案 1 :(得分:1)
使用 SwiftySound ,您可以使用一行代码完成。您所要做的就是为 numberOfLoops 参数传递-1值。
Sound.play(file: "dog", fileExtension: "wav", numberOfLoops: -1)
您可以在GitHub上找到SwiftySound。
答案 2 :(得分:0)
对于重复歌曲,您可以将属性numberOfLoops设置为-1。它将作为无限循环工作
player.numberOfLoops = -1
答案 3 :(得分:0)
使用AVAudioPlayer
的{{1}}属性获取重复功能。
来自Apple doc的讨论部分:
值为0(默认值)表示播放一次声音。设置正整数值以指定返回到开始并再次播放的次数。例如,指定值1会导致声音的总共两次播放。设置任何负整数值以无限循环声音,直到你调用
numberOfLoops
方法。
所以使用:
stop()
或者,利用无限循环:
player.numberOfLoops = n - 1 // here n (positive integer) denotes how many times you want to play the sound
停止播放:
player.numberOfLoops = -1
// But somewhere in your code, you need to stop this