我在ASP.NET MVC 2应用中设置Silverlight 4 MediaElement的源属性时遇到了问题。我的开发机是Windows 7,预发布服务器是Windows Server 2008。
本地使用的MediaElement源代码如下:
<MediaElement x:Name="VideoMediaElement" Source="Assets/126.mp4">
...
</MediaElement>
这段代码在我的开发机和测试服务器上都能正常工作,但我发现只有在Google Chrome浏览器中才能正常运行。经过大量的研究和测试,我将应用程序转换为设置源代码如下:
<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的首选方法是什么?