Silverlight的。无法为大于4Gb的文件打开Web流

时间:2018-03-13 15:28:36

标签: c# silverlight video-streaming

我有IIS 10,其中包含2 x mp4视频。 3和4 GB。如果我在控制台.NET应用程序中运行以下代码,它工作正常。如果我在Silverlight 5中运行相同的内容OpenReadCompleted 从未针对4Gb视频触发,但适用于3Gb。

IE11在Windows 10 x64上为64,Silverlight为x64。

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        Start();
    }

    public void Start()
    {
        //var addr = @"http://localhost/small.mp4";
        var addr = @"http://localhost/large.mp4";

        WebClient webClient = new WebClient();
        webClient.OpenReadCompleted += (s, x) =>
        {
            try
            {
                Debug.WriteLine("Got result: " + 
                  (x.Result == null ? "null" : 
                    x.Result.CanRead.ToString()));
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Got exception {ex}");
            }
        };

        Debug.WriteLine($"Requesting stream {addr}");
        webClient.OpenReadAsync(new Uri(addr));
    }
}

手头的实际任务是使更大的视频(我有多达50Gb的视频)与媒体元素一起使用。但它永远不会超过“开放”状态。在剥离所有内容的同时,我发现如果我使用文件流来处理大型视频媒体元素,但如果我尝试使用网络流,则不会,这导致我做了最简单的测试 - 单独打开网络流。它不起作用。

此代码适用于Silverlight,适用于小视频和大视频:

FileStream fs = new FileStream(@"c:\media\large.mp4", FileMode.Open);
ssme.SetSource(fs);

因此问题在于通过HTTP传递。

关于如何从这一点进一步调查的任何想法?

编辑:目前我只是想从URL打开一个流。 WebClient不起作用 - 如何实现此任何其他建议?

0 个答案:

没有答案