2012-04-15 4 views
0

ich eine AIR-Anwendung baue die Lasten und MP3-Dateien von einem Benutzer-Computer spielt, ist ich den Code so ziemlich direkt aus dem Buch mit, dies zu tun:ein Geräusch in der Luft, Systemspeicher voll entladen bekommen

function startTrack() 
{ 
    if (isStarted == 0) 
    { 
     theSound = new air.Sound(); 
     urlReq = new air.URLRequest(...dynamicaly generated extension); 
     theSound.load(urlReq); 
     soundHandle = theSound.play(); 
     isStarted = 1; 
    } 
    else 
    { 
     soundHandle.stop(); 
     soundHandle = null; 
     theSound = null; 
     urlReq = null; 
     isStarted = 0; 
     startTrack(); 
    } 
} 

Es gibt eine Reihe von Links auf der Seite der App, die verschiedene MP3s abspielen, wenn Sie auf einen klicken, übergibt er den Pfad des Sounds an urlReq und spielt es ab. Wenn Sie auf einen zweiten Sound klicken, stoppt die erste Wiedergabe und spielt die nächste. Was ich dachte, wäre der alte Sound würde durch Anruf theSound = null usw. zerstört werden, aber es scheint nur zu stoppen den Sound spielen den neuen Sound und halten Sie die alte geladen, so dass Sie irgendwann aus dem Systemspeicher laufen, nachdem viele Tracks gestartet wurden und immer geladen.

Also, wenn jemand weiß, wie man einen Sound ausladen oder wie man Dinge aus dem Systemspeicher, die die App verwendet, im Allgemeinen ablädt, wäre sehr geschätzt.

Dank all

Will

Antwort

0

Sie rufen air.System.gc() nach alle zugehörigen Elemente zu löschen.