0

ボタンを押すたびに、新しい URL (配列内) をロードしたい。そのための次のコードがあります。

    public function selectRadio(radio:Radio):void {
        var soundR:Sound = new Sound(); 

        if(!playing) {
            soundR.load(new URLRequest(radio.getURL()));
            soundChannel = soundR.play();
            playing = true;
        }
        else{
            soundChannel.stop();
            playing = false;
        }

        trace("You are now listening to " + radio.getTitle());
    }

しかし、それは私にこのエラーを与えます:

次のようにそのままにしておくと機能します。

soundR.load(radio.getURL());

しかし、そうすると、再生と停止を4回しか押すことができません。URLをロードできないように、4回目以降は音が出ません。

これを修正することは可能ですか?

4

1 に答える 1

1

Radio.getURL() は URLRequest ではなく文字列を返す必要がありますか?

ああ、URLRequest を削除してそれを回避しようとしているようですが、たった 4 つの接続で問題が発生しています。

最も単純なケースを除いて、アプリケーションはサウンドの読み込みの進行状況に注意を払い、読み込み中のエラーを監視する必要があります。たとえば、クリック サウンドがかなり大きい場合、ユーザーがサウンドをトリガーするボタンをクリックするまでに完全にロードされていない可能性があります。アンロードされたサウンドを再生しようとすると、実行時エラーが発生する可能性があります。サウンドの再生を開始するアクションをユーザーに実行させる前に、サウンドが完全に読み込まれるまで待つ方が安全です。

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d25.html

サウンドが完全に読み込まれるまで待てない場合は、NetStream が必要になることがあります: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html

于 2013-06-14T17:45:59.790 に答える