代码之家  ›  专栏  ›  技术社区  ›  Jon Galloway

如何处理使用Silverlight不支持的功能的ASX流(例如重复)

  •  0
  • Jon Galloway  · 技术社区  · 16 年前

    我正在尝试显示另一方作为服务器端播放列表(ASX)提供的视频源。播放列表包含一些不支持的功能,如重复:

    <ASX VERSION="3.0">
      <REPEAT COUNT="4">
        <EntryRef href="http://some-ad-network.com/ad.asx" />
        <Entry>
          <Ref href="http://video-host/content-primary-source"></Ref>
        </Entry>
        <Entry>
          <Ref href="http://video-host/content-secondary-source"></Ref>
        </Entry>
      </REPEAT>
    </ASX>
    

    Silverlight 2.0 doesn't support the REPEAT element 并引发异常:

    重复元素:不支持 并将引发媒体错误 不支持的ag-e-asx元素。

    有解决办法吗?我可以通过httpwebrequest下拉asx文件,分析它,并单独请求流吗?您知道某个库或某个处理ASX文件解析的示例代码吗?

    3 回复  |  直到 16 年前
        1
  •  0
  •   Peter Bromberg    16 年前

    这些属性获取与源设置为的ASX文件中的当前条目相对应的mediaattribute对象的集合。下面是一个javascript示例:

    http://msdn.microsoft.com/en-us/library/bb412367.aspx

        2
  •  0
  •   Jon Galloway    16 年前

    我最终不得不自己解析ASX文件并手动加载元素。如果要加载ASX文件,Peter的建议很有用,但是Silverlight ASX解析器在遇到大多数不支持的元素时会抛出异常,因此您永远无法从attributes属性中加载。

        3
  •  0
  •   julien    16 年前

    我还做了一个定制的ASX解析器,因为MediaElement中的ASX处理不好。它纠正了几个错误,看 http://blog.revolunet.com/index.php/general/wpf-mediaelement-asx-workaround