Silverlight MediaElement Position с созданным WAV (производительность) - PullRequest
1 голос
/ 17 января 2011

Я связал элемент управления MediaElement с элементом управления Slider.Я получаю поток из двоичного поля в базе данных SQL Server.Я обеспокоен тем, что могут быть некоторые проблемы с производительностью из-за следующего:1. Я храню массив байтов, который извлекается из веб-службы.2. Каждый раз, когда я делаю что-либо с MediaElement (т. Е. Сбрасываю позицию, останавливаю воспроизведение, возобновляю воспроизведение), я должен сбросить источник MediaElementКод, который я использую для установки позиции, выглядит следующим образом:

private void ResetPlayerWithPosition(double milliseconds = 0)
{
    // _wmss is a WaveMediaStreamSource from WAVMss.dll
    // audio is of type byte[]
    this._wmss = new WaveMediaStreamSource(new MemoryStream(this.audio));
    this.playbackController.SetSource(this._wmss);
    this.playbackController.MediaOpened += (s, e) =>
    {
        this.playbackController.Position = TimeSpan.FromMilliseconds(milliseconds);
    };
}

Меня беспокоит то, что если размер файла станет большим, произойдет снижение производительности, так как код должен ждать загрузки файла в источник MediaElement, прежде чем позиция будет сброшена.Если это так, есть ли у кого-нибудь какие-либо предложения относительно того, как я мог бы сделать его немного более эффективным?

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 01 ноября 2012

Прошло 1 год 10 месяцев 14 дней с тех пор, как я впервые опубликовал это, и даже не комментарий или дополнительный вопрос. За это время iOS сделала много улучшений, Android выпустил несколько новых версий, HTML5 и jQuery стали более зрелыми, а Microsoft отказалась от Silverlight для Metro.

Я отказался от этого решения, поскольку поддержка недостаточна и находится на пути к небытию. В обмен на Silverlight я выбрал решение HTML5 + jQuery. Это позволило мне разработать облегченный веб-метод с поддержкой AJAX, независимый от браузера + устройства + сервера, кроссплатформенный клиент за меньшее время разработки с большей гибкостью, устойчивостью и удобством обслуживания.

Silverlight: еще одна высокоинновационная, но крайне неэффективная технология. RIP.

...