Pergunta

Eu estou trabalhando em um aplicativo WPF que clipes de monitores de vídeo como parte do fluxo de trabalho. Eu estou fazendo isso usando MediaElement jogar hospedados localmente (não transmitido) arquivos AVI. Funciona muito bem.

No entanto, eu estava apenas entregou um novo requisito para permitir a exibição de legendas enquanto o clipe está jogando. Eu não tenho nenhuma idéia da melhor maneira de fazer isto. Estou vagamente consciente de que WMP tem a capacidade de exibir arquivos de legendas separadas quando um clipe é jogar, mas eu não sei se WPF suporta isso?

Posso fazer isso nativamente no WPF? Se não, quais são as minhas opções?

A minha abordagem fallback seria exigir o cliente para assar as legendas diretamente para o arquivo de vídeo, mas eu prefiro para encontrar uma maneira melhor de lidar com isso.

Foi útil?

Solução

Bem, se sua exigência para as legendas é simplesmente texto que cobre o MediaElement, então sim, WPF certamente pode suportar isto. Você só precisa colocar o MediaElement em uma grade juntamente com uma TextBlock.

O verdadeiro truque vai mudar a propriedade TextBlock de texto de acordo com o tempo do MediaElement. Mas há provavelmente um monte de maneiras de fazer isso; o primeiro que vem à mente é usando um disparador ligado à MediaElement.Position propriedade.

Outras dicas

Em WPF você precisa para analisar o arquivo de legendas e sincronizar, você não tem o evento como MarkerReached no Silverlight. Mas você pode criar uma SMI (SAMI-arquivo) com o mesmo nome que o seu vídeo e colocá-lo na mesma pasta. Em seguida, assinar o evento ScriptCommand e mostrar o conteúdo na textblock sobreposição.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top