2017-08-14 1 views
0

Ich versuche, eine Taste zu haben, die einen Ton spielt, wenn er gedrückt wird.Swift AVAudioplayer auf Knopf drücken

Die App, die ich habe, hat 6 Tasten (mit 6 verschiedenen Sounds). Ich habe nur eine aufgelistet, weil ich versuche, einen Knopf richtig zu arbeiten, bevor ich den Rest mache. Ich weiß, dass der Button funktioniert (über den Druckbefehl unten), aber der Sound wird nicht wiedergegeben.

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

Haben Sie die AVAudioSession konfiguriert? https://developer.apple.com/documentation/avfoundation/avaudiosession – solenoid

+0

habe ich nicht. Vielen Dank! – user8464062

Antwort

0

Wird ein Fehler gedruckt?

Können Sie versuchen, dies zu tun?

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

Vielen Dank für Ihre Antwort! Ich habe versucht, das anstelle der "let url" einzufügen. Scheint aber nicht zu funktionieren :(. Keine Fehlermeldung, aber auch kein Ton (und ich habe meine Lautstärke auf meinem Laptop) – user8464062

Verwandte Themen