预先下载SmoothStreaming资产

时间:2014-03-28 16:35:24

标签: asynchronous web sequential

我正在为SmoothStreaming资产构建一个预下载程序,我们检索客户端清单,提取视频和音频的比特率,通过XDocument迭代片段定义然后(这里是我被困住的地方)从SEQUENTIALLY请求片段服务器。我们的想法是模仿媒体元素并将片段缓存在客户端上以供离线使用。所有的解析和uri构建都很好。我陷入了网络电话的线程和异步方面。

目前我有(很多缩写):

   client = new WebClient();
   client.OpenReadCompleted += GetClientManifest;

在GetClientManifest中:

  using (Stream str = e.Result)
            {
             // I have the manifest. I need to parse it and make the fragment calls
            }

我的第一个块(抱歉是厚)是在GetClientManifest里面,我正在回调,所以如何开始解析和片段进入一个开放的Web请求?
这只是一个关于启动新网络客户端的问题吗?

我也无法想出一种有效的方法来制作片段请求。它们必须严格按顺序排列,在视频片段和音频片段之间交替。

所以我正在寻找类似的东西:

foreach (var urlPair in fragmentList) 
//urlPair is the audio and video urls for the current fragment
{
     //get the video fragment and save it
     //get the audio fragment and save it
}

但是这个循环必须发生在GetClientManifest之外(完成之后),不是吗? 请记住,这是从Silverlight(浏览器外)客户端调用的。出于某种原因,我无法等待工作(使用任务)。

提前感谢和周末 马克D

0 个答案:

没有答案