locked
Referenciar um objeto de video Silverlight ao Banco de dados através de formview RRS feed

  • Pergunta

  • Olá a todos,

    Estou criando um site que terá um sistema de noticias, onde cada noticia terá a possibilidade de exibição de vídeos em seu topo, por meio de um componente em Silverlight. Só que o que acontece, na documentação que achei do componente, só mostra como referencia-lo de forma direta, estando ele e o video dentro de uma pasta ClientBin. 

    <object data="data:application/x-silverlight-2," height="364"
    type="application/x-silverlight-2" width
    ="445">
    <param name="source" value="ClientBin/VideoPlayer.xap"
    />
    <param name="background" value="white"
    />
    <param name="initParams" value="m="
    />
    <param name="minruntimeversion" value="2.0.31005.0"
    />
    <a href=http://go.microsoft.com/fwlink/?LinkId=124807

    style="text-decoration: none;
    ">
    <img alt="Get Microsoft Silverlight"

    src=http://go.microsoft.com/fwlink/?LinkId=108181

    style="border-style: none" /> </a
    >
    </object
    >

    Este é o código de inserção do componente de vídeo que estou usando, a linha em negrito refere-se ao parâmetro que configura o caminho do vídeo, onde ficaria algo como m=nomedovideo.wmv". Precisava fazer de forma que esse parametro m, recebesse o valor de um campo do banco de dados. Alguém pode me ajudar?

    Os links estão abaixo de download deste player

    http://joel.neubeck.net/2008/06/sl2b2-media-player-markers/

    http://www.codeplex.com/sl2videoplayer/

    Desde já, obrigado!

    quarta-feira, 4 de fevereiro de 2009 16:06

Respostas

  • Olá!

    Bem, 

    Você pode fazr o seguinte:
    Dentro do App.Xaml

    Você pode criar um método para pegar o parametro:

    Exemplo:
     
    Na minha index.hml, eu tenho:
    Onde eu tenho a chave Playlist que está recebendo um arquvo em Xml. E dentro da hierarquia do Xml, eu tenho a URL do vídeo.
    <param name="initParams" value="PlayList=../SinglePlaylist.xml /> 

    Agora dentro do App.xaml eu fiz o seguinte:




     private void Application_Startup(object sender, StartupEventArgs e)  
            {  
                string playlist = GetInitParam(e.InitParams, "CPlaylist", "Playlist.xml");  
     
                CarregaPlaylist(playlist);  
            }  
     
            private void CarregaPlaylist(string playlist)  
            {  
                WebClient client = new WebClient();  
                client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);  
                client.DownloadStringAsync(new Uri(playlist, UriKind.RelativeOrAbsolute));  
            }  
     
            void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)  
            {  
                if (e.Error == null)  
                {  
                    CPlaylist playlist = CPlaylist.LoadXml(e.Result);  
                    string a = playlist.Count.ToString();  
                    CriaPlayer(playlist);  
                }  
                else  
                {  
                    //this.RootVisual = new erro();  
                }  
            }  
     
            private void CriaPlayer(CPlaylist playlist)  
            {  
                if (playlist.Count > 1)  
                {  
     
                    Page _page = new Page();  
                    _page.txtTime.Text = playlist.Count.ToString();  
                     
                   this.RootVisual =  _page;  
                      
                }  
            }  
     
     
            private static string GetInitParam(IDictionary<string, string> initParams, string key, string defaultValue)  
            {  
                string retornaValue = null;  
                if (!initParams.TryGetValue(key, out retornaValue))  
                {  
                    retornaValue = defaultValue;  
                }  
                return retornaValue;  
            } 


     Eu estou usando o WebClient, para receber ou enviar dados. Muito fácil de usar. 
     
    Explicação:

    CPlaylist - é minha classe que lê o arquivo Xml.
    GetInitParam, pega o param da pagina.
    CriaPlayer, é meu userControl, onde tenho o MediaElement


    Isso é o que eu fiz, para a minha aplicação!


    Abraços
    Flávia Moreira
    http://www.flamoreira.wordpress.com

    ps: se responder sua pergunta, marque como respondida.


    Flavia Moreira
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 17:42
    quarta-feira, 11 de fevereiro de 2009 12:01

Todas as Respostas

  • Daniel,

    Tudo bom?

    Dê uma olhada na App.xaml. Geralmente estes valores passados por param name são recebidos lá.

    Abraço
    Lucas Defacio

    "Se sua pergunta foi respondida, por favor, marque como resposta"
    terça-feira, 10 de fevereiro de 2009 23:58
  • Olá!

    Bem, 

    Você pode fazr o seguinte:
    Dentro do App.Xaml

    Você pode criar um método para pegar o parametro:

    Exemplo:
     
    Na minha index.hml, eu tenho:
    Onde eu tenho a chave Playlist que está recebendo um arquvo em Xml. E dentro da hierarquia do Xml, eu tenho a URL do vídeo.
    <param name="initParams" value="PlayList=../SinglePlaylist.xml /> 

    Agora dentro do App.xaml eu fiz o seguinte:




     private void Application_Startup(object sender, StartupEventArgs e)  
            {  
                string playlist = GetInitParam(e.InitParams, "CPlaylist", "Playlist.xml");  
     
                CarregaPlaylist(playlist);  
            }  
     
            private void CarregaPlaylist(string playlist)  
            {  
                WebClient client = new WebClient();  
                client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);  
                client.DownloadStringAsync(new Uri(playlist, UriKind.RelativeOrAbsolute));  
            }  
     
            void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)  
            {  
                if (e.Error == null)  
                {  
                    CPlaylist playlist = CPlaylist.LoadXml(e.Result);  
                    string a = playlist.Count.ToString();  
                    CriaPlayer(playlist);  
                }  
                else  
                {  
                    //this.RootVisual = new erro();  
                }  
            }  
     
            private void CriaPlayer(CPlaylist playlist)  
            {  
                if (playlist.Count > 1)  
                {  
     
                    Page _page = new Page();  
                    _page.txtTime.Text = playlist.Count.ToString();  
                     
                   this.RootVisual =  _page;  
                      
                }  
            }  
     
     
            private static string GetInitParam(IDictionary<string, string> initParams, string key, string defaultValue)  
            {  
                string retornaValue = null;  
                if (!initParams.TryGetValue(key, out retornaValue))  
                {  
                    retornaValue = defaultValue;  
                }  
                return retornaValue;  
            } 


     Eu estou usando o WebClient, para receber ou enviar dados. Muito fácil de usar. 
     
    Explicação:

    CPlaylist - é minha classe que lê o arquivo Xml.
    GetInitParam, pega o param da pagina.
    CriaPlayer, é meu userControl, onde tenho o MediaElement


    Isso é o que eu fiz, para a minha aplicação!


    Abraços
    Flávia Moreira
    http://www.flamoreira.wordpress.com

    ps: se responder sua pergunta, marque como respondida.


    Flavia Moreira
    • Marcado como Resposta Daniel Ferreira terça-feira, 13 de julho de 2010 17:42
    quarta-feira, 11 de fevereiro de 2009 12:01