-1
配列のサウンドを時間差を持って再生しようとしています。遅延のある配列でサウンドを再生する
私はwhileループから以下の遅延関数を使用するまですべてを試しましたが、何も動作していないようです。
コードは配列上の最初の2つの文字列だけを再生し、停止します。
私を助けてください):あなたのwhen
値の両方が同じであるため
var audioPlayer : AVAudioPlayer!
var selectedSoundFileName : String = ""
var n : Int = 0
// array containing the sound files
let playArray = ["base","snare","base","base","snare"]
// Button Press to start play sequence
@IBAction func playSequence(_ sender: Any) {
selectedSoundFileName =playArray[0]
playSound()
let when = DispatchTime.now() + 1
DispatchQueue.main.asyncAfter(deadline: when) {
selectedSoundFileName =playArray[1]
playSound()
}
let when = DispatchTime.now() + 1
DispatchQueue.main.asyncAfter(deadline: when) {
selectedSoundFileName =playArray[2]
playSound()
}
}
func playSound() {
let soundURL = Bundle.main.url(forResource: selectedSoundFileName, withExtension: "mp3")
do {
audioPlayer = try AVAudioPlayer(contentsOf: soundURL!)
} catch {
print(error)
}
audioPlayer.play()
}
それが魅力(のように働いたそんなにSanthoshありがとう: – Alex
確かにアレックス:)また、外部のディスパッチ・ブロックを維持していないあなたが行ったようにネストされたが、遅延を増やすことができます。私の編集された答えを見てください。 –