Вот проблема:
У меня есть приложение Silverlight, в котором мы хотели бы одновременно воспроизвести 8 элементов Silverlight MediaElements. Все играют .MP4 видео.
Первые 6 будут загружены почти сразу, и MediaOpened будет открыт через секунду или две. Оставшимся 2 иногда (не всегда) потребуется несколько минут, прежде чем играть / сообщить, что они готовы к игре.
Если я просто играю 6 или меньше, похоже, нет проблем.
Вот что я нашел:
1) Нет никакого отношения к файлам. Я могу изменить порядок элементов MediaElements, и первые 6, которые я пытаюсь открыть, откроются очень хорошо, а остальные заблокируются.
2) Не обязательно проблема пропускной способности (я пытался сжать файлы почти до нуля, и то же самое произошло).
3) Это не проблема IIS (мой сервер), я не думаю, так как я исчерпал количество одновременных соединений.
4) Мои клиентские машины вообще не привязаны. Сеть стабильна на уровне 25%, поэтому возможно, что оставшиеся 2 испытывают недостаток, но что за магия в 7-м и 8-м?
Код
Мой код кажется неважным, но я включу его, потому что, кажется, людям нравится, когда вы делаете:
foreach ( String Uri in UriList )
{
//For every URI we create a new MediaElement. In our test case this is 8 always.
MediaElement newMediaElement = new MediaElement();
// We use MediaOpened as our 'ready to play' event. Buffering remains at 0 for the
// two streams that don't work.
newMediaElement.MediaOpeened += new System.Windows.RoutedEventHandler(stream_MediaOpened);
//Set the source and add it to some list to be added to a grid later...
newMediaElement.Source = uri;
MediaElementList.Add( newMediaElement );
}
После этого MediaElementList добавляется в сетку, определенную в XAML.
Если люди думают, что больше кода будет полезно, я добавлю конкретные части. Как я уже сказал, я не думаю код будет полезен, но вы никогда не знаете ...
Другие исследования
У других людей есть эта проблема, но мы не нашли решения. Мы видели это и это и это , но никто из них не дал никакого ответа, кроме как они не знают.
РЕДАКТИРОВАТЬ : Хорошо, так что есть предел 6, как указывает Кевев. Кто-нибудь знает как-нибудь обойти это?