Pygame: Wie Sound nach Programmende stoppen?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
STiGMaTa_ch
User
Beiträge: 32
Registriert: Sonntag 14. Mai 2006, 22:58
Wohnort: Rueti ZH, Schweiz

Hallo zusammen

Ich habe mir hier - um ein wenig mit wxPython warm zu werden - ein kleines Frame gebastelt welches ein animiertes Gif darstellt sowie einen Hintergrundsound abspielt.

Soweit so gut. Es funktioniert auch alles. Wenn ich nun aber den Quelltext in IDLE öffne, mit F5 starte und irgendwann das Fenster beende wird das Audio File einfach weiter gespielt.

Erst wenn ich in IDLE mixer.quit() eingebe ist ruhe.

Doppelklicke ich die .py Datei (sprich "python datei.py" wird aufgerufen) dann wird auch der Sound sauber beendet.

Nun die Frage. Habe ich in meinem Code etwas vergessen oder liegt es an IDLE, dass der Sound weiterdudelt?

Code: Alles auswählen

#!/usr/bin/env python

import wx
import wx.animate
from pygame import mixer


class LurePanel(wx.Panel):
    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id)
        aGifName = "./bg.omg"
        aGif = wx.animate.GIFAnimationCtrl(self, id, aGifName)
        aGif.Play()
        mixer.init()
        mixer.music.load('Sp0000.mp3')
        mixer.music.play(-1)

def main():
    app = wx.PySimpleApp()
    frame = wx.Frame(None, -1, "Lure of Temptress - Chooser", size=(640, 420), style=wx.CAPTION | wx.SYSTEM_MENU | wx.MINIMIZE_BOX | wx.CLOSE_BOX )
    LurePanel(frame, -1)
    frame.Show()
    app.MainLoop()

if __name__ == '__main__':
    main()
Lieber Gruss
STiGMaTa
EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus. (André Kostolany)
Benutzeravatar
STiGMaTa_ch
User
Beiträge: 32
Registriert: Sonntag 14. Mai 2006, 22:58
Wohnort: Rueti ZH, Schweiz

STiGMaTa_ch hat geschrieben:Nun die Frage. Habe ich in meinem Code etwas vergessen oder liegt es an IDLE, dass der Sound weiterdudelt?
Es liegt definitiv an IDLE. Ich bin nun zu SciTE gewechselt. Jetzt klappt auch alles so wie es soll.

Lieber Gruss
STiGMaTa
EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus. (André Kostolany)
Antworten