Windows phone 7 &引用;“可用内容持续时间不足”;通过SmoothStreamingMediaElement播放流时

Windows phone 7 &引用;“可用内容持续时间不足”;通过SmoothStreamingMediaElement播放流时,windows-phone-7,smooth-streaming,Windows Phone 7,Smooth Streaming,我正在使用SmoothStreamingMediaElement开发一个以IIS平滑流为特色的应用程序。由于项目的性质,我不能透露流的来源,但是我可以提供关于我遇到的问题的完整技术信息 我将SmoothStreaming部分分离到一个单独的应用程序中进行测试。由于微软提供的测试流以其应有的方式工作,所以一切似乎都运行良好(http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Mani

我正在使用SmoothStreamingMediaElement开发一个以IIS平滑流为特色的应用程序。由于项目的性质,我不能透露流的来源,但是我可以提供关于我遇到的问题的完整技术信息

我将SmoothStreaming部分分离到一个单独的应用程序中进行测试。由于微软提供的测试流以其应有的方式工作,所以一切似乎都运行良好(http://video3.smoothhd.com.edgesuite.net/ondemand/Big%20Buck%20Bunny%20Adaptive.ism/Manifest)

我考虑了Windows Phone上SmoothStreaming的限制: -在ManifestReady事件中,过滤可用轨迹以仅显示一个可用分辨率 -测试时,设备未通过Zune连接

显示的错误消息非常清楚:

“3108内容持续时间不足,无法开始播放。 可用=3840毫秒,所需=7250毫秒”

我找不到任何有关此错误的引用。我确实找到了更多关于7250毫秒所需持续时间来源的信息。建议它与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>

我知道这个问题有点老了,但今天我遇到了一个非常类似的问题,所以我想我应该回答它。。。 问题出在r=“7”上 此参数未记录在MS文档中,仅在平滑流媒体版本2.2及以上版本(非2.0)中找到。 r=“7”表示清单中的区块应该重复7次,这意味着您总共有7*3.84秒

这里有一篇博文对此进行了解释:
我知道这个问题有点老了,但我今天遇到了一个非常类似的问题,所以我想我应该回答它。。。 问题出在r=“7”上 此参数未记录在MS文档中,仅在平滑流媒体版本2.2及以上版本(非2.0)中找到。 r=“7”表示清单中的区块应该重复7次,这意味着您总共有7*3.84秒

这里有一篇博文对此进行了解释:

我已经能够将问题分解为一个明确的问题。玩家只加载第一个片段,从不加载下一个片段。当片段长度短于初始缓冲时间时,显示上述错误。如果我们将服务器上的片段大小增加到7秒以上的阈值,则会播放第一个片段,然后无限期地保持缓冲。玩家只加载第一个片段,从不加载下一个片段。当片段长度短于初始缓冲时间时,显示上述错误。如果我们将服务器上的片段大小增加到7秒以上的阈值,那么将播放第一个片段,然后无限期地保持缓冲。非常感谢回到这里。这个问题已经解决了,但我会检查客户是否仍然对真正的解决方案感兴趣。再次感谢!非常感谢你回到这里。这个问题已经解决了,但我会检查客户是否仍然对真正的解决方案感兴趣。再次感谢!