Silverlight.Воспроизвести видео из байтового массива - PullRequest
1 голос
/ 01 февраля 2012

У меня есть приложение Silverlight, которое получает специальную структуру мультимедиа: изображения и видео.Данные принимаются как байты [] для каждого изображения или видео

. Для показа изображений я использую:

MemoryStream stream = new MemoryStream(Node.ResourceBin);

BitmapImage bmp = new BitmapImage();
bmp.SetSource(stream);

ImageContainer.Source = bmp;

. И это работает.:

MemoryStream stream = new MemoryStream();

stream.Write(Node.ResourceBin, 0, Node.ResourceBin.Length);
stream.Position = 0;          

VideoContainer.SetSource(stream);                
VideoContainer.Play();

И это не работает.Я сравнил длину байта [] и исходного файла AVI, и они равны, поэтому данные получены правильно.

Что с ним не так?

Спасибо

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Вы убедились, что Silverlight может воспроизводить видео без загрузки это с потоком? Большинство проблем с видео связаны с поддержкой кодеков. - Настоящий Бауманн 9 часов назад

SL воспроизводит только формат WMV. AVI не играет вообще. Спасибо.

Смотрите здесь: http://forums.silverlight.net/t/9498.aspx/1

Да. Согласно обзору Silverlight, в настоящее время он поддерживает (VC-1, WMV, WMA, MP3) и видео высокого разрешения (HD) 720P.

0 голосов
/ 01 февраля 2012

Судя по всем комментариям, я знаю, что происходит.

При загрузке видео с ресурса НЕ используйте поток. Просто установите источник, используя Source ()

VideoContainer.Source("/GraphManager.WebViewer;component/myvideo.avi");                
VideoContainer.Play();

При загрузке видеофайлов из Интернета используйте поток

...