【发布时间】:2021-01-25 13:58:57
【问题描述】:
我想循环播放多个音频。所以我想停止循环的执行,直到运行音频完成。
我尝试过信号量,但没有运气。我应该在主线程上运行它还是什么?
@IBAction func btnPlayAudiosClicked(_ sender: Any) {
for each in Constants.audioNames{
semaphore.wait()
txtStatus.text = "Playing audio " + each
AudioManager.shared.playSound(audioName: each)
semaphore.signal()
}
}
【问题讨论】:
-
So I want to stop the execution of loop until the completion of running audio.是什么意思? -
我希望一个音频完全播放,然后另一个应该播放。但在这种情况下循环执行,不要等待音频完成。
-
Semaphore用于锁定数据,因此其他对象无法访问它......它与等待某事完成无关 -
那么在这种情况下可以做什么。
标签: swift loops avfoundation avkit