WPF/C#: асинхронная загрузка/буферизация следующего видеоклипа

Мне нужно основное «домашнее» видео (полноэкранное HD), работающее в цикле, а затем в какой-то момент (скажем, пользователь нажимает клавишу) воспроизводится другой короткий фильм (один из двенадцати выбранных случайным образом), а затем обратно домой петля фильма.

Я использую mediaElement в WPF из своего кода C#. Есть ли способ загрузить следующий фильм в память, чтобы он был готов к немедленному воспроизведению? В настоящее время это занимает около секунды или около того...

(На самом деле я использую два медиа-элемента с запущенным фильмом наверху — я делал перекрестное затухание, но сейчас убрал его, пока не смогу буферизовать следующий клип. Не уверен, что это лучший способ сделать это, любые идеи ? Огромное спасибо.


person Matthew    schedule 15.10.2013    source источник


Ответы (1)


Я нашел способ, если кому-то интересно.

Вы можете просто указать кучу mediaElement друг над другом (может иметь разный индекс z, но не обязательно). Затем сделал

video.Opacity = 0.0;
video.Play();
video.Pause();

для всех из них, тогда, когда вы хотите воспроизвести один, вы просто устанавливаете непрозрачность на 1 и воспроизводите его, и он будет воспроизводиться мгновенно.

Не знаю, лучший ли это способ, но работает хорошо. Теперь собираемся реализовать перекрестное затухание, чтобы закончить. Счастливые дни.

person Matthew    schedule 15.10.2013