我怎样才能在iOS中重复一首歌?

时间:2017-08-28 06:23:59

标签: ios xcode avaudioplayer repeat

我想在我的应用中重复一首歌。然而,它只是播放它直到结束,然后它完全停止。我怎样才能为此设置循环功能?

这是我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。

4 个答案:

答案 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