ビューロード時にAVAudioPlayer
というインスタンスが実行されています。別のViewController
から私はUISwitch
を持って音楽を止めます。スイッチからBool
を受け取って、console
の正しい機能を呼び出していますが、再生を停止することができません。私は停止、一時停止、ボリュームを変更しようとしましたが、無駄にしました。アプリがシャットダウン(ホームタップとスワイプアップ)し、スイッチの状態がオフの場合、音楽は再生されません。スイッチをオンにすると、音楽は再生されますが、停止しません。バックグラウンドミュージックを停止できません(Swift 3、Xcode 8)
コード:
let optionDefaults = UserDefaults.standard
@IBOutlet weak var musicOnOff: UISwitch!
var musicOn : Bool = true
@IBAction func switchToGame(sender: UIButton) {
if musicOnOff.isOn{
musicOn = true
optionDefaults.set(musicOn, forKey: "musicOn")
}
if musicOnOff.isOn == false{
musicOn = false
optionDefaults.set(musicOn, forKey: "musicOn")
}}
override func viewDidLoad() {
super.viewDidLoad()
if optionDefaults.value(forKey: "musicOn") != nil {
let musicOn: Bool = optionDefaults.value(forKey: "musicOn") as! Bool
if musicOn == false {
musicOnOff.isOn = false
}
else{
musicOnOff.isOn = true
}
}}
スイッチトグルのコードを含めることはできますか? viewcontrollerは一度ロードされたときにスイッチの状態をチェックするだけなので、音楽を一時停止することはできません。 –
@DaneJordan、スイッチトグルコード –