gpt4 book ai didi

ios - SWIFT 中的 audioPlayerDidFinishPlaying 函数

转载 作者:搜寻专家 更新时间:2023-11-01 06:07:34 30 4
gpt4 key购买 nike

我正在使用 AVFoundation 框架快速编写一个简单的播放器。一切似乎都正常,除了我的播放器一直在一遍又一遍地播放同一首歌曲。我的播放列表中只有一首歌,所以这是有道理的。我想要做的是检查 audioPlayerDidFinishPlaying 标志以确保它已完成播放,然后我会让它停止。我不确定如何实现获取标志的调用是我的代码。

    mp3Player?.play()
**if (mp3Player?.audioPlayerDidFinishPlaying:successfully) {**
mp3Player?.stop()
}

在 objective-c 中获取标志的正确方法是:

    - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
NSLog(@"audioPlayerDidFinishPlaying");
}

谁能解释一下如何在 SWIFT 中实现相同的功能?这是我在 SWIFT 中的第一个程序。我尝试阅读 SWIFT 中的 void 函数,但没有成功。

我得到的错误是无法将类型“AVAudioPlayer.Type”的值转换为预期的参数类型“AVAudioPlayer”

最佳答案

您可以在开始播放音频时交叉检查 numberOfLoops 设置为 0 并且 delegate 设置为 self 或您的播放器正在播放的 Controller 。

   mp3Player?.numberOfLoops = 0
mp3Player?.delegate = self

在同一个类中实现 AVAudioPlayerdelegate 方法,如下所示。

func audioPlayerDidFinishPlaying(player: AVAudioPlayer!, successfully flag: Bool) {
//You can stop the audio
player.stop()

}

关于ios - SWIFT 中的 audioPlayerDidFinishPlaying 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402854/

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