我正在使用 SmoothStreamingMediaElement 开发一个具有 IIS 平滑流的应用程序。由于项目的性质,我无法透露流的来源,但是我可以提供有关我遇到的问题的完整技术信息。
出于测试目的,我将 SmoothStreaming 部分分离到一个单独的应用程序中。一切似乎都运行良好,因为 Microsoft 提供的测试流按应有的方式工作(http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Manifest)
我考虑了 Windows Phone 上 SmoothStreaming 的限制: - 在 ManifestReady 事件中,过滤可用曲目以仅显示一种可用分辨率 - 测试时设备未通过 Zune 连接。
出现的错误信息非常清楚:
“3108 内容持续时间不足,无法开始播放。可用 = 3840 毫秒,需要 = 7250 毫秒”
我无法找到对此错误的任何引用。我确实找到了更多关于 7250 毫秒所需持续时间的来源的信息。此 MSDN 页面表明它与 LivePlaybackOffset 有关,默认为 7 秒,并且无法在 WP7 SmoothStreamingMediaElement 中更改。相同的代码在浏览器-silverlight 应用程序中运行良好。
我无法直接访问提供流的服务器。有没有办法在客户端解决这个问题?还是需要服务器端配置?如果有帮助,我可以分享部分源代码,请让我知道哪些部分是相关的。非常感谢您的帮助!
这是清单文件:
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" TimeScale="10000000" Duration="0" LookAheadFragmentCount="2" IsLive="TRUE" DVRWindowLength="300000000">
<StreamIndex Type="audio" QualityLevels="1" TimeScale="10000000" Name="audio" Chunks="7" Url="http://xxxx/xxx.isml/QualityLevels({bitrate})/Fragments(audio={start time})">
<QualityLevel Index="0" Bitrate="128000" CodecPrivateData="1190" SamplingRate="48000" Channels="2" BitsPerSample="16" PacketSize="4" AudioTag="255" FourCC="AACL"/>
<c t="3485836800000" d="38400000" r="7"/>
</StreamIndex>
<StreamIndex Type="video" QualityLevels="6" TimeScale="10000000" Name="video" Chunks="7" Url="http://xxxx/xxx.isml/QualityLevels({bitrate})/Fragments(video={start time})" MaxWidth="1024" MaxHeight="576" DisplayWidth="1024" DisplayHeight="576">
<QualityLevel Index="0" Bitrate="350000" CodecPrivateData="000000016742E01596540D0FF3CFFF80980097A440000003004000000CA10000000168CE060CC8" MaxWidth="405" MaxHeight="228" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="1" Bitrate="700000" CodecPrivateData="000000016742E01E965404814F2FFF8140013FA440000003004000000CA10000000168CE060CC8" MaxWidth="568" MaxHeight="320" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="2" Bitrate="1000000" CodecPrivateData="000000016742E01E965405217F7FFE0B800B769100000300010000030032840000000168CE060CC8" MaxWidth="654" MaxHeight="368" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="3" Bitrate="1300000" CodecPrivateData="00000001674D4028965605819FDE029100000300010000030032840000000168EA818332" MaxWidth="704" MaxHeight="396" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="4" Bitrate="1600000" CodecPrivateData="00000001674D402A965605A1AFCFFF80CA00CAA440000003004000000CA10000000168EA818332" MaxWidth="718" MaxHeight="404" FourCC="AVC1" NALUnitLengthField="4"/>
<QualityLevel Index="5" Bitrate="2000000" CodecPrivateData="00000001674D4032965300800936029100000300010000030032840000000168E96060CC80" MaxWidth="1024" MaxHeight="576" FourCC="AVC1" NALUnitLengthField="4"/>
<c t="3485836800000" d="38400000" r="7"/>
</StreamIndex>
</SmoothStreamingMedia>