none
Video embutido RRS feed

  • Pergunta

  • Olá,

    Tenho um projeto em WPF, e uma ClassLibrary.

    Coloquei na ClassLibrary 1 imagem e 2 videos, e mudei os 3 para Resource. Gerei a DLL e referenciei no programa.

    Quando quero usar as imagens faço:

    ImageSource="pack://application:,,/ClassLibrary2;component/Resources/Play.png"

    Mas como faço para colocar o video a dar em um MediaElement?

    Já tentei com :

    Source="pack://application:,,/ClassLibrary2;component/Resources/teste.avi

    Mas não está funcionando, o que está errado? e como devo resolver.

    Cumpz, ADAE.


    domingo, 24 de fevereiro de 2013 21:24

Respostas

Todas as Respostas

  • MediaElement usa window media player por trás e se o WMP não suporta .avi então não vai funcionar. Talvez tenha algum codec pack para instalar... não sei.

    Teste algum arquivo .wmv.


    Take a look at WPF FlashMessage
    About.me

    domingo, 24 de fevereiro de 2013 23:15
  • Olá,

    Mas se eu colocar diretamente a localização ex: C:\teste.avi ele corre o video sem problemas, eu acho que o problema está mesmo na forma de como o vídeo deve ser colocado nos resources.

    O problema é que não sei como resolver isso.

    Cumpz, ADAE.

    domingo, 24 de fevereiro de 2013 23:30
  • Qual o Build Action que está nesse arquivo .AVI?

    Veja se está "Resource".

    Clique no arquivo e vá em propriedades...


    Take a look at WPF FlashMessage
    About.me

    segunda-feira, 25 de fevereiro de 2013 00:05
  • Olá,

    Veja se os links desta outra thread te ajudam em algo:

    http://social.msdn.microsoft.com/Forums/en-gb/wpf/thread/c152ebf0-7593-4bfd-84bc-22bfd9c38076


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    • Marcado como Resposta AD_AE segunda-feira, 25 de fevereiro de 2013 21:09
    segunda-feira, 25 de fevereiro de 2013 11:51
    Moderador
  • Olá,

    Estou movendo este post para a categoria de WPF...

    Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá...

    Obrigado...

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    segunda-feira, 25 de fevereiro de 2013 11:52
    Moderador
  • Olá,

    Estive vendo o link que vc mandou e consegui resolver o problema.

    Aqui fica a solução para quem precisar.

     Uri uri = new Uri(@"pack://application:,,/ClassLibrary2;component/Resources/teste.avi");
                StreamResourceInfo info = Application.GetResourceStream(uri);
                UnmanagedMemoryStream st = (UnmanagedMemoryStream)info.Stream;
                long length = st.Length;
                byte[] data = new byte[length];
                st.Read(data, 0, (int)length);
                FileStream fs = new FileStream("teste.avi", FileMode.Create);
                fs.Write(data, 0, (int)length);
                fs.Flush();
                fs.Close();
                ME.LoadedBehavior = MediaState.Manual;
                ME.Source = new Uri("teste.avi", UriKind.Relative);
                //ME.Source = new Uri("pack://application:,,/ClassLibrary2;component/Resources/teste.avi", UriKind.RelativeOrAbsolute);
                ME.Play();

    Cumpz, ADAE.

    EDIT: Eu não entendi metade do código, se alguém puder explicar, agradecia.

    Cumpz, ADAE.


    • Editado AD_AE segunda-feira, 25 de fevereiro de 2013 21:12
    segunda-feira, 25 de fevereiro de 2013 21:08
  • Olá,

    Estive analisando o programa quando executado, e verifiquei que o que está a acontecer é que esse código extrai o video da dll para a pasta do programa.

    Não tem como fazer para usar o video direto da dll sem ter que o extrair?.

    Cumpz, ADAE.

    segunda-feira, 25 de fevereiro de 2013 21:45