Как уже упоминалось в другом ответе, используйте MMPPF (ранее Silverlight Media Framework). Гораздо более полнофункциональный плеер и относительно простой в настройке (также с видеоуроками).
Для битрейта - да, алгоритм Smooth Streaming предназначен для запуска с минимально возможной задержкой, поэтому при старте используется самая низкая битрейт / фрагмент видео. Тем не менее, можно делать то, что вы хотите.
Сначала вам нужно будет сделать 2 вещи:
Добавить обработчик к событию OnMediaPluginRegistered
игрока. В этом случае проверьте, является ли это IAdaptiveMediaPlugin
- вам понадобится экземпляр этого плагина. Вот образец ...
IAdaptiveMediaPlugin _adaptivePlugin = null;
void OnMediaPluginRegistered(object sender, Microsoft.SilverlightMediaFramework.Core.CustomEventArgs<Microsoft.SilverlightMediaFramework.Plugins.IMediaPlugin> e)
{
var adaptivePlugin = e.Value as IAdaptiveMediaPlugin;
if (adaptivePlugin == null) { return; }
if (_adaptivePlugin == null)
{
_adaptivePlugin = adaptivePlugin;
}
}
Как только вы это сделаете, подождите, пока не сработает одно из событий открытия носителя (MediaOpened или что-то еще), и теперь у вас будет доступ к методу IAdaptiveMediaPlugin
, который называется SetVideoBitrateRange(...)
.
Например:
_adaptivePlugin.SetVideoBitrateRange(minBitrate, maxBitrate, true);
Это должно дать вам то, что вам нужно.