我的代码有两个文本框。一个声明声音将被播放多少次,另一个说明声音之间的间隔是多长。我希望这个声音每隔一段时间被改变一次。所以现在这些声音只是在播放。我要它演奏阿巴
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var whiste: UIImageView!
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var textfield2: UITextField!
var arrPlayer: [AVAudioPlayer] = []
var player = AVAudioPlayer()
var timer = Timer()
var count: Int = 0
var judo = 0
@IBAction func i() {
let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "regularWHistle", ofType: "wav")!)
do {
player = try AVAudioPlayer(contentsOf: alertSound)
} catch {
print("No sound found by URL")
}
if let textValue = self.textField.text, let inputNumber = Int(textValue), inputNumber > 0 {
playWith(repeatCount: inputNumber)
} else {
let alert = UIAlertController(title: "Alert", message: "Please enter number.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil))
}}
func playWith(repeatCount: Int) {
var timeInterval = 0.36
if let textValue = self.textfield2.text, let inputNumber = Double(textValue), inputNumber > 0 {
timeInterval = inputNumber
}
player.play()
self.timer = Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: true, block: { (timer) in
self.count += 1
print(self.count)
if self.count != repeatCount {
self.player.play()
} else {
self.count = 0
self.player.stop()
self.timer.invalidate()
}
})
}
}发布于 2018-05-12 19:25:43
因为您希望在playWith内部的每个播放中交替播放音频,那么您需要有两个音频播放器,每个声音一个。
然后根据计数来选择你玩的游戏。
class ViewController: UIViewController {
@IBOutlet weak var whiste: UIImageView!
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var textfield2: UITextField!
var arrPlayer: [AVAudioPlayer] = []
var playerA: AVAudioPlayer!
var playerB: AVAudioPlayer!
var judo = 0
@IBAction func i() {
let alertSoundA = Bundle.main.url(forResource: "regularWHistle", withExtension: "wav")!
let alertSoundB = Bundle.main.url(forResource: "otherWHistle", withExtension: "wav")!
do {
playerA = try AVAudioPlayer(contentsOf: alertSoundA)
playerB = try AVAudioPlayer(contentsOf: alertSoundB)
} catch {
print("No sound found by URL")
}
if let textValue = self.textField.text, let inputNumber = Int(textValue), inputNumber > 0 {
playWith(repeatCount: inputNumber)
} else {
let alert = UIAlertController(title: "Alert", message: "Please enter number.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.cancel, handler: nil))
}}
func playWith(repeatCount: Int) {
var timeInterval = 0.36
if let textValue = self.textfield2.text, let inputNumber = Double(textValue), inputNumber > 0 {
timeInterval = inputNumber
}
var count = 0
let timer = Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: true, block: { (timer) in
print(count)
if count != repeatCount {
let player = count % 2 == 0 ? playerA : playerB
player.play()
count += 1
} else {
timer.invalidate()
}
})
timer.fire()
}
}https://stackoverflow.com/questions/50306955
复制相似问题