5

ラジオ局用のSamsungTVアプリを作成していますが、Icecastストリーム内で「NowPlaying」情報を提供しています。この情報を抽出することは可能ですか(そしてどのようにすればよいですか)?

4

5 に答える 5

1

Shoutcast は「Icy-MetaData」をサポートします。これは、リクエスト ヘッダーの追加フィールドです。設定すると、ストリームに関するメタデータをエンコードされたオーディオ ストリーム自体に定期的な間隔で (" icy-mettaint " バイトごとに 1 回) 埋め込むように、shoutcast サーバーに要求します。「 icy-mettaint 」の値は、shoutcast サーバーの設定によって決定され、初期応答の一部としてクライアントに送信されます。

Icy :metadataと C のサンプル コードの詳細については、Shoutcast Internet Radio Protocolに関するこの記事を参照してください。

もう少し技術的な議論も
http://forums.radiotoolbox.com/viewtopic.php?t=74で利用できます。

于 2013-02-19T09:07:35.180 に答える
0

はい、可能です。メタデータは、指定された間隔でストリーム データにインターリーブされます。基本的に、8192 バイト (またはIcy-MetaInt応答ヘッダーで指定されたもの) を読み取ってから、メタデータ ブロックを読み取ります。

そのメタデータ ブロックの最初のバイトは、データの長さを示します。長さ 0 は、更新されたメタデータがないことを意味します。

メタ ブロックを読み取ったら、ストリーム データの読み取りに戻ります。

ここで私の答えについて詳しく説明し ます

于 2012-09-13T19:49:52.417 に答える
0

ラジオ局でこれを行っている場合、Icecast の XSLT 機能を介してこのデータを提供できます。ある時点で行った、ストリーム メタデータを提供するためのランダムな古い XSLT の例。

もう 1 つのオプションは、Icecast 2.4.1 を実行するか、2 つのファイル (xml2json.xsl status-json.xsl) を古いバージョンに追加することです。

Web アプリ / Web サイトからデータにアクセスするために必要な CORS/ACAO ヘッダーの追加をサポートするのは、Icecast 2.4.1 以降のみであることに注意してください。

ラジオ局に直接協力しておらず、依頼できない場合は、この回答を無視してください。他の誰かがそれを便利だと思うかもしれません。

于 2014-12-10T16:09:35.267 に答える
0

ネイティブ プレーヤーからこのメタを取得するオプションはありません。

おそらくjQuery.streamプラグインを使用してメタを直接取得できますが、icecast サーバーで Access-Control-Allow-Origin をセットアップする必要がありますが、それが機能するかどうかはわかりません。

ここでの最善の解決策は、次のスクリプトを使用することです: http://code.google.com/p/icecast-now-playing-script/

したがって、このスクリプトを Web サーバーにインストールし、ストリームの再生中に SmartTV アプリケーションから AJAX を実行します。

于 2012-09-14T11:16:20.550 に答える