2017-08-14 94 views
0

我想要一個按鈕,將推播放聲音。快速AVAudioplayer上按鈕按

我的應用程序有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