【发布时间】:2011-10-27 19:43:46
【问题描述】:
嗨,过去几天我一直在为此烦恼,我在一个用 C# 编写的 Silverlight 应用程序中有一个媒体元素
我正在尝试通过 http 流式传输 MP3 并通过 silverlight 应用程序播放。虽然它一直在捕获一个异常,上面写着
AG_E_NETWORK_ERROR
mp3 不会播放,MediaElement.MediaOpened 事件永远不会触发
在网上搜索后,这个错误似乎是由于一个错误的来源,但是当我将网络浏览器指向 mp3 时,mp3 可以正常播放。
这是代码
private void button1_Click(object sender, RoutedEventArgs e)
{
Uri source = new Uri("http://www.sm-testing.co.uk/mixes/youdontknow.mp3");
mediaElement1.Source = source;
mediaElement1.MediaFailed += new EventHandler<ExceptionRoutedEventArgs>(mediaElement1_MediaFailed);
mediaElement1.MediaOpened +=new RoutedEventHandler(mediaElement1_MediaOpened);
}
void mediaElement1_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
MessageBox.Show( e.ErrorException.ToString());
}
private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
{
mediaElement1.Play();
}
【问题讨论】:
-
MP3 的大小是多少?您确定以正确的格式接收整个流(MP3)吗?
-
@AllanChua 嗨,是的,mp3 很好,我刚刚用 windows 示例 wma 尝试过,我得到了同样的结果,异常是即时的,我看不到应用程序试图建立连接查看 netstat 的网站
-
我想问的是,如果播放器的来源被完全接收,您是否尝试使用快速观看?
-
您是否从与您的 Silverlight 应用程序相同的域加载它?如果没有,您是否在 www.sm-testing.co.uk 的根目录中设置了跨域策略文件?
-
+1 用于提供实时链接和代码(使其易于检查,但对您的安全而言并不是一件好事)。您可能还想关闭网站上的文件夹浏览:)