SlideShare uma empresa Scribd logo
1 de 14
Reprodutor de
Audio MR
Marcos Momm, Rodrigo de Moraes
Prof.: Rodrigo Curvêllo
Introdução
O trabalho consiste no desenvolvimento de um player de música em que o
usuário tem a possibilidade de além de ouvir a música ter a legenda da
mesma passando sincronizado com o tempo da música.
Para a criação do player de música MR foi utilizado as seguintes tecnologias:
Linguagem de programa Java
JavaFX
Estrutura de documento Json
Desenvolvimento
Proporciona as seguintes ações:
Reproduzir arquivos de áudio no formato .mp3
Sincronizar legendas no formato .lgd junto ao áudio
Cadastrar e salvar playlists de músicas. Utilizando o formato .plt
Para a interface gráfica foi usado o JavaFX
Os arquivos de legenda foram montados utilizando a estrutura de Json
Fundamentação Teórica - Java
Tem a possibilidade de programação concorrente com o uso de APIs e é
responsável por todo o funcionamento do player de música.
A classe thread no Java é nativo na própria linguagem, podendo ser
estendida ou implementada através da classe Runnable.
Fundamentação Teórica - JavaFX
Na interface gráfica do player de música, foi utilizado o JavaFX.
É uma família de produtos desenvolvida pela Sun Microsystems que inclui
uma linguagem de script declarativa e de alto desempenho para oferecer
interfaces gráficas.
Com a utilização do JavaFX foi utilizado o Scene Builder que é um
framework que auxilia no desenvolvimento da interface de interação com
o usuário
Scene Builder
Fundamentação Teórica - Json
JavaScript Object Notation ou somente Json, é um modelo para
armazenamento e transmissão de informações em formato texto.
Tem sido bastante utilizado em aplicações web devido a sua capacidade de
estruturar informações de uma forma bem mais compacta do que a do
modelo XML
O parsing das informações é mais rápido em relação ao XML
Empresas como o Google e Yahoo, adotaram o Json, cujas aplicações
precisam transmitir grandes volumes de dados.
Caso de Uso
Desenvolvimento - Playlist
Uma playlist é manipulada através de uma lista de objetos do tipo “Musica”
e a partir do momento do salvamento, esta lista de objetos, que é do tipo
“ObservableList”, bastante utilizado junto ao JavaFX, é convertida em um
Json.
Ao ler uma playlist o programa converte um json numa lista de objetos do
tipo “Musica”
Desenvolvimento - Legenda
As legendas das músicas, funcionam de forma semelhante a arquivos de
legendas de vídeos, porém neste caso, no padrão de Json.
Desenvolvimento - Player
Necessária a utilização de programação concorrente, usando as threads do
Java.
Foram utilizadas duas threads principais
Uma para controle da música, utilizando uma biblioteca de terceiros, atendendo pelo nome
“Player”.
Outra thread para o controle dos componentes da tela, que seriam o contador do tempo e
as frases de legendas.
Desenvolvimento - Threads
Um problema encontrado ao utilizar as threads do java junto ao JavaFX foi
que as threads do java não possuem acesso aos componentes gráficos do
JavaFX.
Como solução, encontrou-se necessário a utilização de threads secundárias
para alteração dos componentes da tela
Quando se está executando uma thread java, para que se possa editar
algum componente na tela, é necessário disparar uma thread do tipo
“runLater” do JavaFX,
Desenvolvimento - Threads
Conclusão
Para que todos os eventos ocorram, execução da música, legendas, se
mostrou necessário uma linguagem de programação com suporte à
programação concorrente, no caso a linguagem de programação Java
O JavaFX se mostrou uma aplicação bastante interessante para o
desenvolvimento de interface gráfica com o auxílio do Scene Builder
Json foi responsável pela estrutura das legendas da música.
Com a utilização de todas essas tecnologias em conjunto foi possível a
criação do player de música com legendas e com resultados satisfatórios.

Mais conteúdo relacionado

Semelhante a Player de música com legendas sincronizadas em Java

Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01Daniel Alves
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01rollbackpt
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Aécio Costa
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoRegis Magalhães
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaÁlvaro Farias Pinheiro
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java FundamentosWilson Lima
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaAlex Braz
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é javaSergio Silva
 

Semelhante a Player de música com legendas sincronizadas em Java (20)

Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Java basico modulo_01
Java basico modulo_01Java basico modulo_01
Java basico modulo_01
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Manual glo maker notasapoio
Manual glo maker notasapoioManual glo maker notasapoio
Manual glo maker notasapoio
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Mac 2
Mac 2Mac 2
Mac 2
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
Java Fundamentos
Java FundamentosJava Fundamentos
Java Fundamentos
 
Java e Software Livre
Java e Software LivreJava e Software Livre
Java e Software Livre
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação java
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é java
 
POO - Aula 1 introducao
POO - Aula 1   introducaoPOO - Aula 1   introducao
POO - Aula 1 introducao
 
.NET Open Source 2009
.NET Open Source 2009.NET Open Source 2009
.NET Open Source 2009
 

Mais de Congresso Catarinense de Ciências da Computação

Mais de Congresso Catarinense de Ciências da Computação (19)

UTILIZANDO PROGRAMAÇÃO PARALELA NA CRIAÇÃO DE UM JOGO PARA AUXÍLIO NO ENSINO ...
UTILIZANDO PROGRAMAÇÃO PARALELA NA CRIAÇÃO DE UM JOGO PARA AUXÍLIO NO ENSINO ...UTILIZANDO PROGRAMAÇÃO PARALELA NA CRIAÇÃO DE UM JOGO PARA AUXÍLIO NO ENSINO ...
UTILIZANDO PROGRAMAÇÃO PARALELA NA CRIAÇÃO DE UM JOGO PARA AUXÍLIO NO ENSINO ...
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
Jogo das derivadas
Jogo das derivadasJogo das derivadas
Jogo das derivadas
 
Docker
DockerDocker
Docker
 
UTILIZAÇÃO DOS SISTEMAS DE SINGLE SIGN-ON (SSO) DO GOOGLE E FACEBOOK
UTILIZAÇÃO DOS SISTEMAS DE SINGLE SIGN-ON (SSO) DO GOOGLE E FACEBOOKUTILIZAÇÃO DOS SISTEMAS DE SINGLE SIGN-ON (SSO) DO GOOGLE E FACEBOOK
UTILIZAÇÃO DOS SISTEMAS DE SINGLE SIGN-ON (SSO) DO GOOGLE E FACEBOOK
 
Jogo do Dino
Jogo do DinoJogo do Dino
Jogo do Dino
 
Filtro de Prewitt
Filtro de PrewittFiltro de Prewitt
Filtro de Prewitt
 
Sistema de Irrigação Automatizado com Interface de Controle e Monitoramento O...
Sistema de Irrigação Automatizado com Interface de Controle e Monitoramento O...Sistema de Irrigação Automatizado com Interface de Controle e Monitoramento O...
Sistema de Irrigação Automatizado com Interface de Controle e Monitoramento O...
 
Banco de Dados Orientado a Objetos para Aplicações Android - ORMLite
Banco de Dados Orientado a Objetos para Aplicações Android - ORMLiteBanco de Dados Orientado a Objetos para Aplicações Android - ORMLite
Banco de Dados Orientado a Objetos para Aplicações Android - ORMLite
 
Teoria Geral de Sistemas
Teoria Geral de SistemasTeoria Geral de Sistemas
Teoria Geral de Sistemas
 
Use Case 2.0
Use Case 2.0Use Case 2.0
Use Case 2.0
 
Computação na Escola
Computação na EscolaComputação na Escola
Computação na Escola
 
Engenharia e Gestão do Conhecimento: Conceitos e Cases
Engenharia e Gestão do Conhecimento: Conceitos e CasesEngenharia e Gestão do Conhecimento: Conceitos e Cases
Engenharia e Gestão do Conhecimento: Conceitos e Cases
 
Segurança da Informação e Governança em TI
Segurança da Informação e Governança em TISegurança da Informação e Governança em TI
Segurança da Informação e Governança em TI
 
Empreendedorismo tecnológico
Empreendedorismo tecnológicoEmpreendedorismo tecnológico
Empreendedorismo tecnológico
 
O poder da visão
O poder da visãoO poder da visão
O poder da visão
 
Mineração de patentes (rio do sul)
Mineração de patentes (rio do sul)Mineração de patentes (rio do sul)
Mineração de patentes (rio do sul)
 
Ataque Cibernético em Veículos Autônomos
Ataque Cibernético em Veículos AutônomosAtaque Cibernético em Veículos Autônomos
Ataque Cibernético em Veículos Autônomos
 

Player de música com legendas sincronizadas em Java

  • 1. Reprodutor de Audio MR Marcos Momm, Rodrigo de Moraes Prof.: Rodrigo Curvêllo
  • 2. Introdução O trabalho consiste no desenvolvimento de um player de música em que o usuário tem a possibilidade de além de ouvir a música ter a legenda da mesma passando sincronizado com o tempo da música. Para a criação do player de música MR foi utilizado as seguintes tecnologias: Linguagem de programa Java JavaFX Estrutura de documento Json
  • 3. Desenvolvimento Proporciona as seguintes ações: Reproduzir arquivos de áudio no formato .mp3 Sincronizar legendas no formato .lgd junto ao áudio Cadastrar e salvar playlists de músicas. Utilizando o formato .plt Para a interface gráfica foi usado o JavaFX Os arquivos de legenda foram montados utilizando a estrutura de Json
  • 4. Fundamentação Teórica - Java Tem a possibilidade de programação concorrente com o uso de APIs e é responsável por todo o funcionamento do player de música. A classe thread no Java é nativo na própria linguagem, podendo ser estendida ou implementada através da classe Runnable.
  • 5. Fundamentação Teórica - JavaFX Na interface gráfica do player de música, foi utilizado o JavaFX. É uma família de produtos desenvolvida pela Sun Microsystems que inclui uma linguagem de script declarativa e de alto desempenho para oferecer interfaces gráficas. Com a utilização do JavaFX foi utilizado o Scene Builder que é um framework que auxilia no desenvolvimento da interface de interação com o usuário
  • 7. Fundamentação Teórica - Json JavaScript Object Notation ou somente Json, é um modelo para armazenamento e transmissão de informações em formato texto. Tem sido bastante utilizado em aplicações web devido a sua capacidade de estruturar informações de uma forma bem mais compacta do que a do modelo XML O parsing das informações é mais rápido em relação ao XML Empresas como o Google e Yahoo, adotaram o Json, cujas aplicações precisam transmitir grandes volumes de dados.
  • 9. Desenvolvimento - Playlist Uma playlist é manipulada através de uma lista de objetos do tipo “Musica” e a partir do momento do salvamento, esta lista de objetos, que é do tipo “ObservableList”, bastante utilizado junto ao JavaFX, é convertida em um Json. Ao ler uma playlist o programa converte um json numa lista de objetos do tipo “Musica”
  • 10. Desenvolvimento - Legenda As legendas das músicas, funcionam de forma semelhante a arquivos de legendas de vídeos, porém neste caso, no padrão de Json.
  • 11. Desenvolvimento - Player Necessária a utilização de programação concorrente, usando as threads do Java. Foram utilizadas duas threads principais Uma para controle da música, utilizando uma biblioteca de terceiros, atendendo pelo nome “Player”. Outra thread para o controle dos componentes da tela, que seriam o contador do tempo e as frases de legendas.
  • 12. Desenvolvimento - Threads Um problema encontrado ao utilizar as threads do java junto ao JavaFX foi que as threads do java não possuem acesso aos componentes gráficos do JavaFX. Como solução, encontrou-se necessário a utilização de threads secundárias para alteração dos componentes da tela Quando se está executando uma thread java, para que se possa editar algum componente na tela, é necessário disparar uma thread do tipo “runLater” do JavaFX,
  • 14. Conclusão Para que todos os eventos ocorram, execução da música, legendas, se mostrou necessário uma linguagem de programação com suporte à programação concorrente, no caso a linguagem de programação Java O JavaFX se mostrou uma aplicação bastante interessante para o desenvolvimento de interface gráfica com o auxílio do Scene Builder Json foi responsável pela estrutura das legendas da música. Com a utilização de todas essas tecnologias em conjunto foi possível a criação do player de música com legendas e com resultados satisfatórios.