2017-08-14 101 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