4

私は何年もの間、これに対する解決策を探してきましたが、決定的に文書化されたものはありません。多くの Shoutcast Flash プレーヤー (radio.de など) があるので、それが可能であることはわかっています。ただし、私の研究のほとんどはこれにつながります。

s = new Sound();
s.loadSound ("url.of.shoutcaststream:8003",true);

FireFoxでは機能しますが、IEでは機能しません。コンポーネントを購入するのではなく、独自のカスタム プレーヤーを構築できるように、それらのコンポーネントがどのように機能するかを知りたいのです。

4

5 に答える 5

8

あなたはほとんどそこにいます。完全なマントラは次のとおりです。

s = new Sound();
s.loadSound ("http://url.of.shoutcaststream:8003/;",true);

末尾のスラッシュとセミコロンに注意してください。Shoutcast サーバー (DNAS) は、リクエストのユーザーエージェントを調べて、レスポンスで何を送り返すかを検出します。ブラウザの場合、HTML のページを提供します。ブラウザ UA でない場合は、ストリームを送信します。末尾のセミコロン (文書化されていない理由による) により、DNAS は UA を無視し、常にストリームを送信します。

AAC ストリームを再生するための満足のいく解決策はありません。Flash にはそのための機器がありますが、何らかの理由で AAC の API が完全に異なり、AAC Shoutcast を再生できません。

ここでの NetStream ソリューションが解決策を提供する可能性は低いです。

詳細については、私のブログを参照してください。

http://www.flexiblefactory.co.uk/flexible/?p=51

于 2009-11-18T22:27:20.610 に答える
3

Flash で Stream-Player を実行する際の主な問題は、メモリの消費です。

Flash Player はストリームをメモリに記録し続け、フリーズするまですべてのコンピューター リソースを浪費し、ユーザーを非常に怒らせます。:)

// setTimeout または setInterval で sound.bytesLoaded を定期的にチェックし、サウンド変数を null

MEM_MAX = 10 * 1024 * 1024
if(sound.bytesLoaded > MEM_MAX)
  { reloadSound(); flash.system.System.gc(); }
于 2010-08-05T10:58:18.790 に答える
1

クロスドメインの問題により、Flash のメタデータを直接読み取ることはできません。Flash Player はそれを「コンテンツ」と見なすため、オーディオ ストリームを再生できますが、メタデータを読み取ることはできません。これは、Flash Player がクロス ドメイン ポリシーの対象となる「データ」と見なすためです。

クロスドメイン ポリシー ファイルを ShoutCast サーバーに追加できますが、これはほとんどのユーザーにとって困難です (ShoutCast サーバーに Web サーバーをインストールする必要があります)。

ジョージ・ガーディナー http://www.commonmode.co.uk

于 2010-11-24T14:15:15.780 に答える
0

wavestreaming.com のプレーヤーをチェックしてみてください。使い方はとても簡単です。

http://www.wavestreaming.com/servers/flash-streaming/shoutcast-player.php

于 2010-03-14T15:01:43.930 に答える