private void LoadStreamUri(string uri)
{
try {
PlaylistParser parser = new PlaylistParser();
if (parser.Parse(new SafeUri(uri))) {
foreach(Dictionary<string, object> element in parser.Elements) {
if(element.ContainsKey("uri")) {
// mms can be a nested link
string element_uri = element["uri"].ToString();
if(element_uri.StartsWith("mms:", StringComparison.CurrentCultureIgnoreCase)){
LoadStreamUri("http" + element_uri.Substring(element_uri.IndexOf(":")));
}
stream_uris.Add(new SafeUri(((Uri)element["uri"]).AbsoluteUri));
}
}
} else {
stream_uris.Add(new SafeUri(uri));
}
Log.DebugFormat ("Parsed {0} URIs out of {1}", stream_uris.Count, this);
} catch (System.Net.WebException e) {
Hyena.Log.Exception (this.ToString (), e);
SavePlaybackError (StreamPlaybackError.ResourceNotFound);
} catch (Exception e) {
Hyena.Log.Exception (this.ToString (), e);
SavePlaybackError (StreamPlaybackError.Unknown);
}
}