我正在使用iOS Swift编程蓝牙传感器,并希望在连接蓝牙且传感器工作时播放声音。例如,当温度过高时,应发出声音警报。
然而,出于某种原因,即使playSound()函数似乎正在工作,声音也是静音:我们看到println消息“正在播放音频(测试线)。此行是否出现在控制台?)“从控制台。
我想知道蓝牙是否会阻止AVAudioPlayer工作。怎么发出声音?
代码经过编程,只要蓝牙开启,声音应始终发出哔哔声。我注意到一个有趣的现象: 当Bluetooh关闭时,声音会发出一声哔声。 在将应用程序置于后台(按下iPhone主页按钮)时,声音会发出一次哔声。 我有点感觉蓝牙阻挡了AVAudioPlayer,因此,在蓝牙关闭的那一刻,AVAudioPlayer抓住了这个机会一次。
由于 比尔
func playSound(){
println("Playing Audio (Test line. Did this line appear in the console ?)")
// Set the sound file name & extension
var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Mario", ofType: "mp3")!)
// Preperation
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
// Play the sound
var error: NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
func peripheral(peripheral: CBPeripheral!, didUpdateValueForCharacteristic characteristic: CBCharacteristic!, error: NSError!) {
//self.statusLabel.text = "Connected"
if characteristic.UUID == IRTemperatureDataUUID {
// read parameters
let allValues = Sensor.getTemperatureData(characteristic.value)
self.temperatureData = allValues[0]
//////////////////////////////////////////////////////////////////
self.playSound()
}