sexta-feira, 20 de janeiro de 2012

Obama veta SOPA

\0/0/0/0/0/0/0/0/0/0/

Estão dizendo nas redes sociais que o SOPA foi vetado. Sera que é verdade?

Pra quem nao sabe, SOPA é um projeto de lei que tem como objetivo acabar com a pirataria na internet.
No caso, nenhum um GIF animado, foto, video ou qualquer outra coisa pode ser reproduzida em sites e blogs sem autorização dos criadores.

Isso tambem afetara as redes sociais acabando com as mesmas.
Traduzindo, sera o fim da internet. Clique aqui e saiba mais sobre o SOPA
Sim meus amigos, não é hoje que vamos começar a era da censura na internet, o tio Obama vetou essa maldita lei. Podemos continuar a fazer o que sempre fizemos, e a internet não morreu !
O projeto já odiado por todo usuário de internet, teve fim hoje. No Twitter, a galera criou a hashtag #thankyouobama como forma de agradecimento à não aprovação do projeto SOPA e agora você poderá continuar baixando músicas, vendo vídeos, postando merda, fapeando, enfim, fazendo a merda que você quiser na internet. TODOS COMEMORA, menos a Luiza, que está no Canadá. E mais uma vez o dia foi salvo graças ao tio OBAMA!
OBS: Muitos sites confirmaram, alguns dizem que isso ainda não está 100% definido. A qualquer nova informação atualizaremos o post.

Se ele(Obama) realmente vetou o SOPA, ele tem que ser reeleito ja! HAHAHAH
VETADO

quarta-feira, 18 de janeiro de 2012

Executar Audio em Java Swing



Uma das coisas que mais motivam nós programadores quando estamos aprendendo a programar ou que continuemos a estudar a linguagem a qual programamos é aprender sempre algo novo que a linguagem nos oferece. Claro que Java nos permite hoje fazer qualquer tipo de aplicação, porém o grande problema é que não sabemos como fazer o que queremos e a partir da aí buscamos cada vez mais o conhecimento que precisamos para fazer o que desejamos.
Recentemente descobri essa biblioteca chamada JLayer a qual nos permite tocar de forma muito fácil arquivos MP3 em nossos programas Java. Eu ainda não estudei essa biblioteca profundamente para ver tudo o que ela tem, porém hoje eu mostro como fazer o básico para tocar arquivos MP3 usando a Jlayer.
O tutorial é dividido em duas partes. A primeira parte (logo a seguir) ensina a tocar um arquivo mp3 em código Java de forma bem simples. Na segunda parte (que publicarei algum dia), ensinarei a tocar o arquivo mp3 usando threads e mostrando alguns outros recursos do JLayer.
Para fazer este tutorial, eu estou usando o seguinte ambiente de desenvolvimento:
  • JDK 1.6
  • JLayer 1.0.1
  • Netbeans 7.0 
  • Windows 7
A primeira coisa que devemos fazer é baixa a biblioteca JLayer. A biblioteca é grátis(LGPL) e você pode fazer o download dos binários e fontes aqui:http://www.javazoom.net/javalayer/javalayer.html
Depois de feito o download, descompacte o arquivo e copie o arquivo jl1.0.1.jar para a pasta lib de seu projeto. Copiado o jar, adicione a biblioteca ao classpath do projeto. Feito isso, vamos criar uma classe que será responsável por tocar nosso arquivo MP3. Eu chamei a classe de MP3 e ela ficou dessa forma:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.meupost.player;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player;
public class MP3 {
  /**
   * Objeto para nosso arquivo MP3 a ser tocado
   */
  private File mp3;
  /**
   * Objeto Player da biblioteca jLayer. Ele tocará o arquivo
   * MP3
   */
  private Player player;
  /**
   * Construtor que recebe o objeto File referenciando o arquivo
   * MP3 a ser tocado e atribui ao atributo MP3 da classe.
   *
   * @param mp3
   */
  public MP3(File mp3) {
    this.mp3 = mp3;
  }
  /**
   * Método que toca o MP3
   */
  public void play() {
      try {
                FileInputStream fis     = new FileInputStream(mp3);
                BufferedInputStream bis = new BufferedInputStream(fis);
                this.player = new Player(bis);
                System.out.println("Tocando!");
                this.player.play();
                System.out.println("Terminado!");
            }
            catch (Exception e) {
                System.out.println("Problema ao tocar " + mp3);
                e.printStackTrace();
            }
     }
}
A classe está comentada e explica o que significa os atributos e os métodos. No métodoplay(), vemos que um objeto FileInputStream e BufferedInputStream são instanciados. O Player da biblioteca JLayer usa o BufferedInputStream para poder instanciar e deixar pronto o objeto Playero qual nos permite enfim, tocar a música. O método play() do objeto Player é o responsável pela execução da música.
Note que como esse exemplo não é multithread, a música começará a tocar no momento da chamada do método play() e o fluxo de execução irá parar nesse método. O fluxo somente retornará quando a música terminar. Por fim, se ocorrer qualquer erro na execução da música, esteremos capturando a exceção e exibindo o stackTrace da mesma.
Terminada essa nossa classe MP3, vamos criar uma classe Main que instancia nossa classe MP3 e que permita nós testarmos a classe MP3 para ver se realmente funciona.
Eu criei uma classe Main assim:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
package com.meupost.main;
import java.io.File;
import com.meupost.player.MP3;
public class Main {
  public static void main(String[] args) {
    //String com o caminho do arquivo MP3 a ser tocado
    String path = "/home/ricardo/Músicas/Rock Clássico/Eagles - Hotel California.mp3";
    //Instanciação de um objeto File com o arquivo MP3
    File mp3File = new File(path);
    //Instanciação do Objeto MP3, a qual criamos a classe.
    MP3 musica = new MP3(mp3File);
    //Finalmente a chamada do método que toca a música
    musica.play();
  }
}
As quatro linhas de código nela estão comentadas e falam o que é cada comando. Acredito que você já possa testar e ver se funciona. Mande um Play aí.
Espero que tenham gostado. É bem simples, mas muito legal. No próximo tutorial mostrarei como fazer um tocador mais complexo utilizando threads.

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.