Silverlight 4 MediaElement来源Uri问题

时间:2010-07-13 19:11:43

标签: asp.net-mvc silverlight internet-explorer google-chrome

我在ASP.NET MVC 2应用程序中设置Silverlight 4 MediaElement Source属性时遇到问题。我有一台Windows 7开发机器和一台Windows Server 2008登台服务器。

本地我一直在使用MediaElement来源,如:

<MediaElement x:Name="VideoMediaElement" Source="Assets/126.mp4">
...
</MediaElement>

这个源可以在我的开发机器和我的登台服务器上运行,但我发现这只适用于谷歌浏览器。经过大量的研究和测试后,我转换了我的应用程序,将源设置为:

<MediaElement x:Name="VideoMediaElement" Source="http://localhost:40000/ClientBin/Assets/126.mp4">
...
</MediaElement>

使用此类型的Uri可让我的视频在Internet Explorer和Google Chrome中播放在我的本地服务器上。当我将其推送到我的登台服务器时,路径计算为:

<MediaElement x:Name="VideoMediaElement" Source="http://myDomain/MyVirtualDir/ClientBin/Assets/126.mp4">
...
</MediaElement>

这对我来说很好,但视频无法在登台服务器上的任何浏览器中播放。

我在开发环境和登台服务器之间看到的差异是虚拟目录。设置包含虚拟目录的完整Uri时是否存在已知问题或技巧?

将视频文件从文件结构加载到Silverlight 4 MediaElement的首选方法是什么?

2 个答案:

答案 0 :(得分:2)

我诊断的第一步是: -

  • 停止使用chrome。让它在IE中运行,然后测试其他浏览器。
  • 停止使用完整的网址。鉴于XAP,主机页面和资源都在同一台服务器上,我们知道我们不应该需要它,所以不要使用它。
  • 请勿使用在登台服务器上运行的浏览器,使用其他客户端计算机进行测试。
  • 在客户端计算机上安装Fiddler2作为服务器信息建议并查看实际请求的内容。

您是否尝试过“/assets/126.mp4”而不是“assets / 126.mp4”?

如果您从看起来不错的网址获取404检查服务器mime地图,是否有.mp4的映射?

同时检查文件访问安全性。

答案 1 :(得分:0)

检查fiddler实际的http请求/响应告诉你什么?也许有安全信息(跨域访问)或至少你得到更多细节封面下发生的事情...... 你可以在这里找到小提琴手:http://www.fiddler2.com/fiddler2/