отображение субтитров для видео в мультимедийном элементе WPF

StackOverflow https://stackoverflow.com/questions/1202810

  •  05-07-2019
  •  | 
  •  

Вопрос

Я работаю над приложением WPF, которое отображает видеоклипы как часть рабочего процесса. Я делаю это с помощью MediaElement для воспроизведения локально размещенных (а не потоковых) файлов AVI. Прекрасно работает.

Однако мне только что передали новое требование разрешить отображение субтитров во время воспроизведения клипа. Я понятия не имею, как лучше всего это сделать. Я смутно осознаю, что WMP может отображать отдельные файлы субтитров во время воспроизведения клипа, но я не знаю, поддерживает ли WPF это?

Могу ли я сделать это изначально в WPF? Если нет, какие у меня варианты?

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

Это было полезно?

Решение

Ну, если ваше требование для субтитров - это просто наложение текста на MediaElement, то да, WPF, безусловно, может это поддерживать. Вам просто нужно поместить MediaElement в сетку вместе с TextBlock.

Реальный трюк заключается в изменении свойства TextBlock Text в соответствии с временем в MediaElement. Но, вероятно, есть много способов сделать это; первое, что приходит на ум, - это использование триггера, привязанного к свойство MediaElement.Position .

Другие советы

В WPF вам нужно проанализировать файл субтитров и выполнить синхронизацию, у вас нет события, подобного MarkerReached, в Silverlight. Но вы можете создать smi (SAMI-файл) с тем же именем файла, что и ваше видео, и поместить его в ту же папку. Затем подпишитесь на событие ScriptCommand и покажите содержимое в текстовом блоке наложения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top