我找到了答案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