从 axWindowsMediaPlayer 控件中检索广播歌曲标题
Retrieve radio song titles from axWindowsMediaPlayer control
我正在使用 AxWindowsMediaPlayer 控件构建在 C#
中开发的小型 Windows 网络广播。
效果很好。我的 StatusChange
事件处理程序提取当前广播电台的名称:
private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)
{
IWMPMedia cm = axWindowsMediaPlayer1.currentMedia;
if (cm != null)
{
title = cm.getItemInfo("Title");
}
}
为了改进我的收音机,我想显示其他信息,例如当前歌曲的名称和艺术家。这样的 StreamTitle
meta-data 由 mpg123.
等音频播放器显示
示例:
ICY-META: StreamTitle='Der Langmut der SPD mit Sarrazin hat nicht geholfen, Jürgen Zurheide';
假设一个广播流实际上包括meta-information (Icecast, SHOUTcast):
Is there a way to get hold of radio stream titles using AxWindowsMediaPlayer?
我不喜欢第二个线程消化整个流只是为了提取 meta-data。
似乎没有简单的方法可以提取/Icecast meta-data from AxWindowsMediaPlayer。
我的解决办法是替换AxWindowsMediaPlayer by BASS.NET.
BASS is an audio library wrapped by BASS.NET for .Net 用法。
它提供了一个 TAG_INFO
class 涵盖了足够多的标签。
来自 BASS C#
示例的代码片段 NetRadio.cs
if ( BassTags.BASS_TAG_GetFromURL( _Stream, _tagInfo) )
{
this.textBoxAlbum.Text = _tagInfo.album;
this.textBoxArtist.Text = _tagInfo.artist;
this.textBoxTitle.Text = _tagInfo.title;
this.textBoxComment.Text = _tagInfo.comment;
this.textBoxGenre.Text = _tagInfo.genre;
this.textBoxYear.Text = _tagInfo.year;
}
生成的收音机:
一种替代方法是下载和评估某些互联网广播流提供商提供的 status-json.xsl 文件。但是我还没有尝试过这条路。
我正在使用 AxWindowsMediaPlayer 控件构建在 C#
中开发的小型 Windows 网络广播。
效果很好。我的 StatusChange
事件处理程序提取当前广播电台的名称:
private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)
{
IWMPMedia cm = axWindowsMediaPlayer1.currentMedia;
if (cm != null)
{
title = cm.getItemInfo("Title");
}
}
为了改进我的收音机,我想显示其他信息,例如当前歌曲的名称和艺术家。这样的 StreamTitle
meta-data 由 mpg123.
示例:
ICY-META: StreamTitle='Der Langmut der SPD mit Sarrazin hat nicht geholfen, Jürgen Zurheide';
假设一个广播流实际上包括meta-information (Icecast, SHOUTcast):
Is there a way to get hold of radio stream titles using AxWindowsMediaPlayer?
我不喜欢第二个线程消化整个流只是为了提取 meta-data。
似乎没有简单的方法可以提取
我的解决办法是替换AxWindowsMediaPlayer by BASS.NET.
BASS is an audio library wrapped by BASS.NET for .Net 用法。
它提供了一个 TAG_INFO
class 涵盖了足够多的标签。
来自 BASS C#
示例的代码片段 NetRadio.cs
if ( BassTags.BASS_TAG_GetFromURL( _Stream, _tagInfo) )
{
this.textBoxAlbum.Text = _tagInfo.album;
this.textBoxArtist.Text = _tagInfo.artist;
this.textBoxTitle.Text = _tagInfo.title;
this.textBoxComment.Text = _tagInfo.comment;
this.textBoxGenre.Text = _tagInfo.genre;
this.textBoxYear.Text = _tagInfo.year;
}
生成的收音机:
一种替代方法是下载和评估某些互联网广播流提供商提供的 status-json.xsl 文件。但是我还没有尝试过这条路。