0

自作のフラッシュ プレーヤーでいくつかの SHOUTcast ラジオ局を再生しています。flashplayer 自体は pls ファイルを認識しないため、pls ファイルを開いて読み取り、pls ファイルにリストされているファイル/リンクにリダイレクトする pls リーダーを PHP で作成しました。(私は mpeg/audio ストリームのみを要求します)。

このファイル (同じドメイン上) に対する FlashPlayer リクエストは、この pls ファイルにリストされているストリームに送信されます。

たとえば、PHP で pls ファイルを「開く」と、たとえば次の情報が得られます ( 経由http://yp.shoutcast.com/sbin/tunein-station.pls?id=<someid>):

[playlist]
numberofentries=1
File1=http://132.241.56.35:8004
Title1=(#1 - 0/10) KCSC.ASChico.com - 24Kbps MP3
Length1=-1
Version=2

PHP はリクエストを にリダイレクトしhttp://132.241.56.35:8004ますが、何も聞こえません。それをブラウザーで開いて存在をテストすると、それは HTML ページ、SHOUTcast DNAS ステータス ページになります。たとえばwinampで開くと、ストリームが再生されます。ここで何かが恋しいですか?

一部のリダイレクトはフラッシュ プレーヤーで直接再生されるため、私の方法は問題ないようです。

これを操作するにはどうすればよいですか? ストリームと思われるリンクが HTML ページなのはなぜですか?

4

1 に答える 1

2

SHOUTcast サーバーは、ユーザー エージェント文字列をチェックして、それがブラウザーかどうかを確認します。これは、ブラウザで SHOUTcast サーバーの URL にアクセスすると、管理ページが表示されるためです。この検出は、単語Mozillaが文字列に含まれているかどうかを確認することによって行われます。

Flash プレーヤーはブラウザーのユーザー エージェント文字列を使用するため、SHOUTcast サーバーはストリームの代わりに管理コンソールを送信します。

;要求されたパスの末尾にセミコロンを追加することで、この動作を簡単にオーバーライドできます。

http://132.241.56.35:8004/;

これにより、SHOUTcast サーバーはユーザー エージェント文字列を無視し、MPEG OVERRIDE代わりに使用するようMozillaになります。

于 2013-04-09T14:12:25.343 に答える