我不确定这个问题是否属于Ask Different或SO。这两者都有。
我最近使用我用于工作的耳机无线连接。我把Bose QC35连接到我的MacBook Pro,通过蓝牙运行macOS Sierra。我在iTunes中听音乐的同时运行iOS模拟器时遇到了一个奇怪的问题。当我的应用程序启动时,它会使用AVAudioPlayer播放声音效果。播放声音的行为导致iTunes停止并开始播放当前曲目的无限期0.5秒循环。我必须重新启动iTunes才能继续收听。你可以想象在正常的工作日会有多烦人。
导致它的代码很简单:
import UIKit
import AVFoundation
var player : AVAudioPlayer! = nil
class ViewController: UIViewController, AVAudioPlayerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let url = Bundle.main.url(forResource: "intro", withExtension: "m4a")
do {
player = try AVAudioPlayer.init(contentsOf: url!)
}
catch {
return
}
player.prepareToPlay()
player.delegate = self
player.play() // This line causes the audio issue
}
}
重新启动iTunes让事情再次发挥作用。从那以后,我可以在应用程序中自由发挥更多音效。问题只发生在应用程序启动后播放的第一个声音上。
有谁知道如何防止这个问题发生?