我找到了答案searchting网络以及后用表达式3摆弄一下。
事实证明,实时音频流具有发送的标记以及音频。标记几乎可以包含任何内容,但其中一个被称为“标题”。标题基本上是一个可以阅读的自由格式字符串字段。通过我的流,编码器可以发送大量信息作为可以分解的标题。所以这里是我使用的代码:
从注册一些事件开始,最后一个是重要的事件。
public MainPage()
{
InitializeComponent();
this.mediaElement1.BufferingProgressChanged += new RoutedEventHandler(mediaElement1_BufferingProgressChanged);
this.mediaElement1.MarkerReached += new TimelineMarkerRoutedEventHandler(mediaElement1_MarkerReached);
}
然后实际的标记处理程序将执行以下操作:
private void mediaElement1_MarkerReached(object sender, TimelineMarkerRoutedEventArgs e)
{
Dictionary<string, string> songAttribs = new Dictionary<string, string>();
string playerFeed = HttpUtility.UrlDecode(e.Marker.Text);
char[] delims = { '&' };
string[] Attribs = playerFeed.Split(delims);
foreach (String attrib in Attribs)
{
string[] keypair = attrib.Split('=');
string key = "";
string value = "";
try
{
key = keypair[0];
}
catch
{
key = null;
}
if (key != null)
{
try
{
value = keypair[1];
}
catch
{
value = "";
}
songAttribs.Add(keypair[0], keypair[1]);
}
}
nowplaying.Title = songAttribs["title"];
nowplaying.Artist = songAttribs["artist"];
nowplaying.Duration = 0;
this.label2.Content = "Artist: " + nowplaying.Artist;
this.label3.Content = "Title: " + nowplaying.Title;
this.label1.Content = playerFeed;
}
仍在对一些代码,但到目前为止,事情似乎工作。
什么类型是mediaElement1?谢谢 – UpTheCreek 2011-04-07 16:31:26
@UpTheCreek [MediaElement](http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.aspx);) – 2011-04-07 19:41:39