頼りないニモニック

はっきりいって個人の日記レベル

C#でMP3のネットラジオ(SHOUTcast)を再生する

毎日、海外のネットラジオを作業用BGMとして聴いていますが、C# から再生できるかやってみました。理想形としてはサウンドの出力部分以外はP/Invokeを使わずにやりたいと思っていましたが、全く難しくありませんでした。

ここでのネットラジオとは、SHOUTcastで、しかもMP3で配信されているものを前提とします。

使用ライブラリ

ALSharp.dll、Mp3sharp.dllをアセンブリ参照に追加、さらにShoutcastStream.csをプロジェクトに追加します。ALSharpはDLLの他に必要なファイルをコピーしておきます(詳しくはライブラリのページで)。

サンプルコード

エラー処理無し。任意のキーで停止します。タイトルの表示に対応。ネットラジオのURLをお好みのものに変更してください。

各行で何をやっているかは詳細に説明しませんが、18行目はMp3SharpでMP3データのヘッダを強制的に読み込ませるために挿入しています。これを行わないとチャネル数などの情報取得に失敗します。

最近はフォーマットがAACOgg Vorbisになったネットラジオもありますから、Mp3Sharpの部分を差し替えればもちろん動作するはずです。