fre*_*ed_ 7 silverlight azure silverlight-4.0 smooth-streaming-player
我在windows azure上托管一些自适应流媒体视频,我注意到在开始时视频以最低的可用比特率开始.这是一个大问题.
我通过搜索互联网看到一个技巧可以通过挂钩manifestready事件并删除最低比特率然后在一段时间后再添加它们来完成.这很有意义,但我没有看到这样做的示例代码.
我从表达式编码器4获得了播放器代码并看了一眼,但发现无处可去做更改.
有人有更多关于改善平滑流媒体启动的信息吗?
非常感谢你
你好我把这个问题发布到媒体平台播放器论坛,得到了一个有效的答案.
讨论在这里:http://smf.codeplex.com/discussions/271042
这是我使用的代码:
public MainPage() {
InitializeComponent();
player.MediaPluginRegistered += new EventHandler<CustomEventArgs<IMediaPlugin>>(player_MediaPluginRegistered);
player.PlayStateChanged += new EventHandler<CustomEventArgs<MediaPluginState>>(Player_PlayStateChanged);
}
private IAdaptiveMediaPlugin _adaptivePlugin = null;
private bool isStartupHeuristicsActive = false;
void player_MediaPluginRegistered(object sender, CustomEventArgs<IMediaPlugin> e) {
var adaptivePlugin = e.Value as IAdaptiveMediaPlugin;
if (adaptivePlugin == null) return;
if (_adaptivePlugin == null) _adaptivePlugin = adaptivePlugin;
_adaptivePlugin.ManifestReady +=new Action<IAdaptiveMediaPlugin>(_adaptivePlugin_ManifestReady);
}
void _adaptivePlugin_ManifestReady(IAdaptiveMediaPlugin obj)
{
if (_adaptivePlugin != null)
{
var videoStream = _adaptivePlugin.CurrentSegment.SelectedStreams.Where(i => i.Type == StreamType.Video).FirstOrDefault();
if (videoStream != null)
{
var averageBitrate = videoStream.AvailableTracks.Average(t => t.Bitrate);
var track = videoStream.AvailableTracks.FirstOrDefault(t => t.Bitrate >= averageBitrate);
if (track != null)
{
isStartupHeuristicsActive = true;
videoStream.SetSelectedTracks(new[] { track });
}
}
}
}
private void Player_PlayStateChanged(object sender, CustomEventArgs<MediaPluginState> e)
{
if (isStartupHeuristicsActive && e.Value == MediaPluginState.Playing)
{
isStartupHeuristicsActive = false;
if (_adaptivePlugin != null)
{
var videoStream = _adaptivePlugin.CurrentSegment.SelectedStreams.Where(i => i.Type == StreamType.Video).FirstOrDefault();
if (videoStream != null)
{
videoStream.SetSelectedTracks(videoStream.AvailableTracks);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
归档时间: |
|
查看次数: |
2539 次 |
最近记录: |