silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – IIS启动时平滑流低质量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在windows azure上托管一些自适应流媒体视频,我注意到在开始时视频以最低的可用比特率开始.这是一个大问题. 我通过搜索互联网看到,可以通过挂钩manifestready事件并删除最低比特率然后在一段时间后将它们添加回去来完成一个技巧. 这很有道理,但我没有看到这样做的示例代码. 我从表达式编码器4获得了播放器代码并看了一眼,但发现无处可去做更改. 有人有更多关于改善平滑流媒体启动的信息
我在windows azure上托管一些自适应流媒体视频,我注意到在开始时视频以最低的可用比特率开始.这是一个大问题.

我通过搜索互联网看到,可以通过挂钩manifestready事件并删除最低比特率然后在一段时间后将它们添加回去来完成一个技巧.
这很有道理,但我没有看到这样做的示例代码.@H_607_22@

我从表达式编码器4获得了播放器代码并看了一眼,但发现无处可去做更改.@H_607_22@

有人有更多关于改善平滑流媒体启动的信息吗?@H_607_22@

非常感谢你@H_607_22@

解决方法

你好,我把这个问题发布到媒体平台播放器论坛,得到了一个有效的答案.

讨论在这里http://smf.codeplex.com/discussions/271042@H_607_22@

这是我使用的代码:@H_607_22@

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);
            }
        }
    }
}

谢谢@H_607_22@

大佬总结

以上是大佬教程为你收集整理的silverlight – IIS启动时平滑流低质量全部内容,希望文章能够帮你解决silverlight – IIS启动时平滑流低质量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。