コード ```現在タイマーアプリを作成中です。(TabBarの中の一つ) カウント終了の際、下記のようなダイアログを表示してサウンドを出したいです。 ![イメージ説明](9c925a72dd146c7e2e03aac3c97b03e0.png) 現状、ダイアログしかでない状態です。 ```swift import UIKit import AVFoundation class SecondViewController: UIViewController, AVAudioPlayerDelegate { var audioPlayer:AVAudioPlayer? //タイマーの変数を作成 var timer :Timer? //カウントの変数を作成 var count = 0 //設定を扱うキーを作成 let settingKey = "timer _value" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let settings = UserDefaults .standard settings.register(defaults: [settingKey:10]) } @IBOutlet weak var countDownLabel: UILabel! @IBAction func settingButtomAction(_ sender: Any) { if let nowTimer = timer { if nowTimer.isValid == true { nowTimer.invalidate() } } //画面推移 performSegue(withIdentifier: "goSetting", sender: nil) } @IBAction func startButtomAction(_ sender: Any) { if let nowTimer = timer { if nowTimer.isValid == true { return } } //タイマースタート timer = Timer.scheduledTimer(timeInterval: 1.0, target: self,selector: #selector(self.timerInterrupt(_:)), userInfo: nil, repeats: true) } @IBAction func stopButtomAction(_ sender: Any) { if let nowTimer = timer { if nowTimer.isValid == true{ nowTimer.invalidate() } } } func displayUpdate() -> Int { let settings = UserDefaults.standard let timerValue = settings.integer(forKey:settingKey) let remainCount = timerValue - count countDownLabel.text = " (remainCount)秒" return remainCount } //経過時間の処理 @objc func timerInterrupt(_ timer:Timer){ count += 1 //残り時間がゼロ以下の時、タイマーを止める if displayUpdate() <= 0 { //初期化処理 count = 0 //タイマー停止 timer.invalidate() //ダイアログ作成 let alertController = UIAlertController(title: "終了", message: "タイマー終了!さあ、頑張ろう!", preferredStyle: .alert) let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil) alertController.addAction(defaultAction) present(alertController,animated: true,completion: nil) func playsound(){ //この関数を音を鳴らしたい場所で呼び出して使う _ = Bundle.main.bundleURL.appendingPathComponent("sample.mp3") if Bundle.main.path(forResource: "sample", ofType: "mp3") != nil { if let sound = audioPlayer { sound.prepareToPlay() sound.play() } } } } } override func viewDidAppear(_ animated: Bool) { count = 0 _ = displayUpdate() } }
<試したこと>
AVAudioPlayerで、MP3を読み込む。
こちらの記事を参照しました。http://gokexn.blog.fc2.com/blog-entry-114.html
記事をググっても、ボタンを押すと音がなる関連のものしか出てこない状況で
詰まってしまいました。
初歩的な質問になってしまうかと思いますが
お詳しい方の回答をお待ちしております。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー