Ich benutze xcode 9 und swift 4 für meine App. In meiner App habe ich Musik in der ViewDidLoad spielen. Wenn ich den View-Controller verlasse, um zu einer anderen Ansicht zu wechseln, spielt er weiter wie gewünscht. Wenn ich jedoch zu diesem View-Controller zurückkehre, beginnt das Lied erneut zu spielen. Dieser Song überlappt den Song, der zuerst geladen wurde. Habt ihr irgendwelche Ideen, wie man das verhindern kann?Musik spielt über das Lied, wenn ich zum ursprünglichen VC zurückkomme
do
{
let audioPath = Bundle.main.path(forResource: "APP4", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch
{
//catch error
}
let session = AVAudioSession.sharedInstance()
do
{
try session.setCategory(AVAudioSessionCategoryPlayback)
}
catch
{
}
player.numberOfLoops = -1
player.play()
Obwohl, idealerweise sollte Ihr Code, der Audio spielt, in einem Manager irgendwo getrennt untergebracht werden. –
Ich sehe, was Sie meinen, ich habe den Code in meine ViewDidLoad, aber es kommt mit einem Fehler auf der ersten und letzten Zeile. Statischer Member 'isMusicPlaying' kann nicht für den Instanztyp 'ViewController' verwendet werden. Ich habe versucht, die statische Variable in meinem viewDidLoad auch zu setzen, aber ich habe diesen Fehler. Statische Eigenschaften können nur für einen Typ deklariert werden. – DaManSeth76
@ DaManSeth76 die Variable muss außerhalb der Funktion 'viewDidLoad' deklariert werden. Und sollte mit dem Klassennamen aufgerufen werden. Zum Beispiel 'MyViewController.isPlaying' –