0

私はユーザーのコンピューターからmp3をロードして再生するAIRアプリケーションを構築しています。これを行うために、本のコードをほぼそのまま使用しています。

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て再生されます。2番目のサウンドをクリックすると、最初の再生が停止し、次のサウンドが再生されます。古いサウンドは呼び出しなどで破壊されると思いましたがtheSound = null、新しいサウンドの再生が停止し、古いサウンドがロードされたままになるため、多くのトラックが開始されて保持された後、最終的にシステムメモリが不足するようですロードされました。

したがって、サウンドをアンロードする方法や、アプリが使用しているシステムメモリから一般的に物をダンプする方法を誰かが知っている場合は、それをいただければ幸いです。

皆さんありがとう

意思

4

1 に答える 1

0

関連するすべての要素を削除した後、 air.System.gc() を呼び出します。

于 2012-04-19T14:52:38.760 に答える