Ich habe eine Struktur mit meinem Audio-Player drin:Swift 3: AVAudioPlayer spielt keinen Ton
struct MT_Audio {
func playAudio(_ fileName:String, _ fileExtension:String, _ atVolume:Float) {
var audioPlayer = AVAudioPlayer()
if let audioPath = Bundle.main.path(forResource: fileName, ofType: fileExtension) {
let audioURL = URL(string:audioPath)
do {
audioPlayer = try AVAudioPlayer(contentsOf: audioURL!)
audioPlayer.volume = atVolume
audioPlayer.prepareToPlay()
audioPlayer.play()
} catch {
print(error)
}
}
}
}
//I'm calling it in viewDidLoad like this:
guard let fileURL = Bundle.main.url(forResource:"heartbeat-01a", withExtension: "mp3")
else {
print("can't find file")
return
}
let myAudioPlayer = MT_Audio() //<--RESOLVED THE ISSUE BY MAKING THIS A PROPERTY OF THE VIEWCONTROLLER
myAudioPlayer.playAudio("heartbeat-01a", "mp3", 1.0)
Da es nicht zum Absturz nicht und brennt auf der Wache ich die Datei weiß, gibt es. Ich habe auch nach dem Versuch eine Pause gemacht und komme zum Audioplayer. Wenn ich zur eigentlichen Datei gehe und in Xcode darauf klicke, wird abgespielt. Dies schlägt sowohl auf der SIM als auch auf dem Gerät fehl. Jede Hilfe wäre willkommen.
Werfen Sie einen Blick in das rechte Fenster in Xcode. Wenn die Datei ausgewählt ist, sollte die Zielmitgliedschaft überprüft werden. Wenn nicht, überprüfen Sie es und versuchen Sie es erneut. –
Ich hatte das vor dem Posten überprüft. Aber danke für den Vorschlag. – PruitIgoe
_Seite note_ Sie sollten vermeiden, dass diese 'implizite, unverpackte Option ', die Sie in' audioURL! 'Haben. Bundle.main stellt eine URL-Methode zur Verfügung, die eine optionale URL zurückgibt, die stattdessen 'if audioUrl = Bundle.main.url (forResource: fileName, withExtension: fileExtension)' – Lamar