2017-08-14 3 views
0

私はプッシュボタンを押すと音が鳴るようにしようとしています。Swift AVAudioplayer on Button press

私が持っているアプリには6つのボタンがあります(6種類のサウンドがあります)。残りの作業を行う前にボタンを正しく動作させようとしているからです。私は、ボタンが動作していることを知っています(下の印刷コマンドから)が、それは音を再生していません。

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    var player : AVAudioPlayer? 

    @IBAction func buttonOne(_ sender: Any) { 
     func playSound() { 
      let url = Bundle.main.url(forResource: "drinking", withExtension: "mp3")! 

      do { 
       player = try AVAudioPlayer(contentsOf: url) 
       guard let player = player else { return } 

       player.prepareToPlay() 
       player.play() 
      } catch let error as NSError { 
       print(error.description) 
      } 
     } 
     print("Anakin: IT IS WORKING!") 
    } 
} 
+0

AVAudioSessionを設定しましたか? https://developer.apple.com/documentation/avfoundation/avaudiosession – solenoid

+0

私はしませんでした。ありがとうございました! – user8464062

答えて

0

エラーを出力していますか?

これを試すことはできますか?

let path = Bundle.main.path(forResource: "FILE NAME WITH EXTENSION", ofType:nil)! 
let url = URL(fileURLWithPath: path) 

do { 
    let sound = try AVAudioPlayer(contentsOf: url) 
    sound.play() 
} catch { 
    // couldn't load file :(
} 
+0

ありがとうございました!私はそれを "let url"の代わりに入れようとしました。しかし、動作していないようです:(。エラーメッセージは表示されませんが、音が鳴りません(ノートパソコンにボリュームがあります) – user8464062