在AIR中卸载声音,系统内存变满

时间:2012-04-15 11:18:15

标签: javascript audio air

我正在构建一个AIR应用程序,它可以从用户计算机上加载和播放mp3,我正在使用这些代码来完成这项工作:

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();
    }
}

应用程序页面上有一系列链接播放不同的mp3,当你点击一个链接时,它会将声音的路径传递给urlReq并播放它。当您单击第二个声音时,它会停止第一个播放并播放下一个声音。我认为会发生旧声音会被呼叫theSound = null等破坏,但它似乎停止声音播放新声音并保持旧声音加载,这样你最终会在很多曲目后耗尽系统内存已经开始并保持装载。

因此,如果有人知道如何卸载声音或如何通常从系统内存转储内容,应用程序正在使用它将非常感激。

全部谢谢

威尔

1 个答案:

答案 0 :(得分:0)

删除所有相关元素后调用air.System.gc()。