Jump to content
nunomonteiro123

Streaming de Música

Recommended Posts

nunomonteiro123

Boas, este ano termino o 12º e como sempre temos de realizar a infernal PAP.... Desde o inicio que escolhi um programa para ouvir musica estilo Spotify mas estou a ter grandes dificuldades na parte de streaming de musica.

A minha grande e primeira duvida é a seguinte: Como e que adiciono Musicas numa Base de dados? Tenho de adicionar alguns critérios a musica como por exemplo autor, album, data de criação etc etc mas não estou a conseguir chegar perto de algo com sucesso.

A segunda grande duvida é como e que posso criar um Player de Musica? Sei que posso usar o Windows Media Player como ferramenta mas digamos que aquele design e literalmente horrivel e nao se adequa ao estilo moderno do meu programa. 

Gostaria de obter algum tipo de explicação sobre o assunto, nao preciso que façam a papinha toda obviamente.

Sugestões são aceites. Relembro que não posso mudar de protejo ;)

Share this post


Link to post
Share on other sites
ribeiro55

Olá nunomonteiro123,

O que é que não estás a conseguir ao certo na adição de dados à base de dados?
Para o que a PAP representa, não precisas de implementar o conceito de "stream", propriamente dito.
Algo tão simples como a tua aplicação fazer download do ficheiro todo antes de a tocar já serve o propósito e torna-se muito mais simples.

Vou assumir que por Windows Media Player te estás a referir ao controlo COM do Windows Media Player que podes adicionar ao teu form.
Mesmo adicionando ao forma através da Toolbox é possível retirar a interface com uiMode = "invisible", e ficas sem rigorosamente nada na parte visual.

Também podes fazê-lo sem adicionar nada por a toolbox:

WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
wmp.URL = @"C:\Windows\media\Ring05.wav";
wmp.controls.play();

É possível usar todos os controlos do player programáticamente, e até te permite colocar caminhos no protocolo HTTP no URL, o que acrescenta mais possibilidades à tua solução. Terás de pensar antes em como vais "alojar" as músicas, para depois decidir como as servir.

Explora essa parte e partimos daí para o resto.

  • Vote 1

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
nunomonteiro123
19 horas atrás, ribeiro55 disse:

Olá nunomonteiro123,

O que é que não estás a conseguir ao certo na adição de dados à base de dados?
Para o que a PAP representa, não precisas de implementar o conceito de "stream", propriamente dito.
Algo tão simples como a tua aplicação fazer download do ficheiro todo antes de a tocar já serve o propósito e torna-se muito mais simples.

Vou assumir que por Windows Media Player te estás a referir ao controlo COM do Windows Media Player que podes adicionar ao teu form.
Mesmo adicionando ao forma através da Toolbox é possível retirar a interface com uiMode = "invisible", e ficas sem rigorosamente nada na parte visual.

Também podes fazê-lo sem adicionar nada por a toolbox:


WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
wmp.URL = @"C:\Windows\media\Ring05.wav";
wmp.controls.play();

É possível usar todos os controlos do player programáticamente, e até te permite colocar caminhos no protocolo HTTP no URL, o que acrescenta mais possibilidades à tua solução. Terás de pensar antes em como vais "alojar" as músicas, para depois decidir como as servir.

Explora essa parte e partimos daí para o resto.

Bem visto e obrigado pela ajuda na parte do player. Na questão da musica eu queria fazer streaming da musica onde esta está numa "base de dados" isto , se é assim que funciona para multimédia, No fundo nao queria acrescentar muito "peso" ou "lixo"(Ficheiros de musica no pc). Como exemplo posso dar o spotify que nao tem musicas nos ficheiros, anao ser que cliques para download.

 

Share this post


Link to post
Share on other sites
ribeiro55

Não é bem assim. O Spotify despeja muito, MUITO lixo até. Normalmente é feito um cache de algumas músicas para a frente e para trás. A pasta que ele usa para guardar dados chega-me a ocupar 5GB. Vê por ti na Users\teu_user\Appdata\Local\Spotify

Não há truques de magia. Streaming não é nada mais do que um download assíncrono e leitura parcial, mas download de qualquer maneira.
O que quis dizer é que não precisas de fazer streaming "per se" para que a PAP tenha valor. O teu cliente pode empregar algumas técnicas como o download de duas ou três músicas para a frente e para trás, que vai apagando, para que consigas melhor performance nas ações previsíveis (andar uma música para trás e outra para a frente).
No caso de uma ação impossível de prever, como o user selecionar uma música da lista ao acaso, fazes simplesmente o download antes de a começar a bombar, e novamente o cache assíncrono de duas ou três para a frente ou para trás.

Alternativamente, se servires os teus ficheiros via HTTP, por exemplo, podes usar o endereço diretamente no COM Windows Media Player, propriedade URL, que acho que faz streaming (mesmo streaming) sem que te tenhas de chatear.

  • Vote 1

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
nunomonteiro123
4 horas atrás, ribeiro55 disse:

Não é bem assim. O Spotify despeja muito, MUITO lixo até. Normalmente é feito um cache de algumas músicas para a frente e para trás. A pasta que ele usa para guardar dados chega-me a ocupar 5GB. Vê por ti na Users\teu_user\Appdata\Local\Spotify

Não há truques de magia. Streaming não é nada mais do que um download assíncrono e leitura parcial, mas download de qualquer maneira.
O que quis dizer é que não precisas de fazer streaming "per se" para que a PAP tenha valor. O teu cliente pode empregar algumas técnicas como o download de duas ou três músicas para a frente e para trás, que vai apagando, para que consigas melhor performance nas ações previsíveis (andar uma música para trás e outra para a frente).
No caso de uma ação impossível de prever, como o user selecionar uma música da lista ao acaso, fazes simplesmente o download antes de a começar a bombar, e novamente o cache assíncrono de duas ou três para a frente ou para trás.

Alternativamente, se servires os teus ficheiros via HTTP, por exemplo, podes usar o endereço diretamente no COM Windows Media Player, propriedade URL, que acho que faz streaming (mesmo streaming) sem que te tenhas de chatear.

Mais uma vez obrigado pela ajuda, consegui iniciar e fazer muitas mais pesquisas com base no que ditas-te. Para confirmar que nao estou muito errado na procura encontrei algo parecido https://msdn.microsoft.com/en-us/library/ff634558.aspx onde faz download e da "play" na musica neste caso.

 

Share this post


Link to post
Share on other sites
ribeiro55

Esse "MediaPlayer" não é o mesmo "MediaPlayer" que está em questão. O exemplo que te dei refere-se ao componente COM (https://msdn.microsoft.com/en-us/library/windows/desktop/dd562851(v=vs.85).aspx)
Aquele que encontraste refere-se a um (vá.. ) wrapper do DirectX, a XNA Framework. Não é isso que queres.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
nunomonteiro123

Estou a pensar em fazer o tal "streaming" usando FileZilla como por exemplo clica na musica "dusk till dawn" e faz download do mp3 file e o programa da play na musica usando o "MediaPlayer". 

ja criei uma form para adicionar musicas ao filezilla, mas estou a ter dificuldades na parte de fazer o download do ficheiro. Alguma tip ? 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.