GAMERPLAYER
Gravar um audio ou gravar uma tela não é uma tarefa complicada.
Porem sincronizar o audio e o video é sim muito difícil ,ao meu ver e não foi uma tarefa fácil esta aplicação utiliza a plataforma jdk8 apesar de eu estar utilizando o nb27 a plataforma não é a atual
acredito que neste exato momento é o JDK 27 esta será a ultima pastagem utilizando o JFX no jdk8 aqui no blog
Porque apesar de ser uma plataforma estável os níveis de segurança foram completamente atualizados Portanto não faz sentido continuar programando no jdk8 já que os aplicativos podem não funcionar no JDK atual.
eu escolhi uma taxa de 48000, 16, 2,para audios e 18000hz 16bit 2 canais estéreo pra ser gravado como audio do sistema no momento da gravação da tela isso pesa muito na memoria porem pode ser melhorado e bem sincronizado pra o que precisamos
No momento apenas pra fazer gravação de voz pelo microfone foi escolhido a mesma taxa de audio mais com uma diferencia ,onde a gravação é feita apenas com 1 canal no modo mono ficaria muito leve com uma qualidade de audio razoavelmente boa pra configuração de um i3 acredito que em um i5 ja nao vai ter nenhum problema de compatibilidade
A gravação da tela utilizando uma biblioteca JavaCV é muito ampla e este artigo não aborda tudo que é necessário a intenção primeiramente reconhecimentos de objetos porem porem não neste artigo
Mais de acordo com os documentos da Oracle a gravação pesa muito quando utilizadas com varias threads acaba tendo error se nao bem configurada na hora de escrever o código
o java fx precisa ler e grava utilizando algumas codificações especificas
tive alguns problemas que duraram dias pra ser resolvidos porem algumas informações ja foram repassadas na roadmap do javafx 2.0 onde declara quais arquivos e containes de audio e videos são suportados
https://docs.oracle.com/javafx/2/api/javafx/scene/media/package-summary.html
nesta aplicaçao é utilizado este formato pra ser utilizado na gravaçao...asim a aplicaçao poderar ser gravada e visualizada em grande parte dos leitores de audio e video ...inclusive em varios outros dispositivos
eu nao tenho muita experiencial em gravações de audio utilizando o java porem precisava criar um aplicativo ou dispositivo que permita gravar a tela enquanto eu jogo um MMX5 em um emulador de psx2 porem utilizei enquanto jogava em emuladores de snes e n64 tambem e obtive bons resultados.
Meu computador no momento que estou testando o aplicativo é um Win10 64x , i3 ,3.0ghz e 4gb de memoria e placa e video acoplada na placa mae ...quando estou gravando a 9.0 fps do Game Player0.1 a um atraso ou adianto no momento da gravação mesmo utilizando 60 fps da emulação do emulador do ps1...
Em um outro notebook com configuração de um win11 64x i5 3.0ghz com 8 de RAM nao ouve atraso no audio com 8 de fps no GamePlayer a 60 fps do emulador.. mais acredito que ate o final dos artigos isso ja devo ter corrigido este pequeno detalhe (error) .
este aplicativo é feito na possibilidade de poder gravar a tela do dispositivo enquanto o dispositivo é utilizado também pode gravar audio do microfone é possível gravar e identificar rosto ou objectos a frente da webcam ate mesmo reconhecer voz ...mais nem todos estes processos vao ser explicado mais acredito que deixarei alguns links que pode ajudar se voce esta a procura destas informações também vou fazer uma atualização assim que terminar outros projetos.
As bibliotecas e recursos que nao tiver neste artigo vais estar no próximo com a plataforma atualizada.
video do aplicativo
Como estou com muito ocupado pra criar projetos e poder praticar eu desenvolvi esta aplicaçao nas horas que tenho nos "finais de semana". Nao tive muito problema para escrever o código porque a Oracle disponibiliza uma ampla documentação. As classes e bibliotecas necessárias para o desenvolvimento de javasond e javacv como é uma aplicação de pratica e estudo nao acho que seja necessário utilizar algum recurso de IA pra fazer o meu codigo... entao talvez o aplicativo nao fique tao interessante e talvez com certeza vai ser bam mais fácil entender...
Se desejar ler alguns materiais antes de iniciar este artigo
JavaFX livro JavaFX_Introduction_by_example
Javasond https://docs.oracle.com/javase/tutorial/sound/index.html
https://docs.oracle.com/javase/8/docs/technotes/guides/sound/programmer_guide/contents.html
ou um dos meus preferidos como o javafx 1.2
o javafx martering
ou o projavafx platform
Espero que você tenha uma boa leitura e goste deste artigo
acredito que explicar todas classes utilizadas e a maneira que foram utilizadas ficaria extremamente trabalhoso ,eu precisaria de tempo pra preparar um conteúdo completo porem nas próximas atualizaçoes deste aplicativo pode ter algo mais completo.
... o java 8 mudou muito hoje, estamos na versão 26 o acesso a jvm pelo javafx mudou um pouco alem do mais as bibliotecas e classes jrs apartir da 16 serão preciso ter permissão ou assinaturas necessárias para funcionar correctamente...portanto mesmo que o aplicativo consiga se ser executado pela jvm algumas bibliotecas e classes podem não ser lidas e acabar gerando error " quebrando "o aplicativo e nao fornecendo as permiçoes necesarias para acessar as librarys
Isso vai acontecer porque o aplicativo utiliza o javasdk independente alem de librarys como jakarta e javacv para reconhecimento de rostos e gravação e o javasond para gravação audio do microfone e sistema e o ffpeg para juntar arquivos de audio e video
"Uma soluçao é utilizar a jdk8 por padrao acredito que pra quem utiliza marvem para seus projetos padrao consiga estas bibliotecas de maneiras mais estavel porem pra algumas bibliotecas e recursos especificos o java pode esta trabalhando nisso pra uma atualizaçao em brevemente... "
Apesar que o javafx estar voltando ser uma opção para o java sendo incluído novamente na jdk como uma biblioteca de interface rica "Tambem pode ser possível baixar uma sdk independente oferecida pela comunidades da oracle , glum , opemFX e outras comunidades
Este aplicativo foi escrito no apache netbens 25 utilizando o JDK8, ja que o requisito mínimo era a estabilidade do projeto porem agora a questão e se poderemos utilizar futuramente apartir do javafx 27 ou JDK27 ..... porque testei no JDK 26 e utilizando o SDK do JFX26 para a interface gráfica
Porem acredito que sim as classes das bibliotecas podem ser acessadas através de assinaturas ou de algumas configurações da VMOptions
espero que faça uma boa leitura :s
estrutura da interface e controle
nao tive a preocupação de criar classes private todas poderiam ser acessadas como publicas
controles e medias de e audio de vídeos no Javafx
"O JFX nao possui mais pacotes capaz de capturar audios do sistema e nem gravar" porem sempre foi possivel acessar pacotes da library javasond
Isso vai ser aplicado assim que possível por enquanto vamos comentar como utilizar controles medias no javafx ,para poder acessar os audios e vídeos gerados na tela atravez do javacv e do javasond
primeiramente trataremos o audio
longe de uma aplicaçao super avançada eu gostaria de lembrar que alem da própria documentação o javafx tem alguns artigo comentado no livro javafx definitivo volume 2 possui exemplos muito interessante de como utilizar javafx media, entao neste artigo é utilizado uma cleasse dedicada as midias geradas pela aplicação
em questão sobre o fxml ou css pode se voce pode obtyer mais detalhes aqui
Gravação de audio do microfone e do sistema
para gravar um audio no java existe algumas maneira mais neste artigo iremos utilizar as classes necessárias contidas no pacote do opencv e do javasond ou seja podemos utilizar uma library pra isso ou apenas utilizar as classes que estao disponíveis apartir no jdk1.5
diagrama de classes do javasond
quando estou construindo um sistema como este imagino algumas situações como "e se o microfone não estiver ligado ou se estiver sendo utilizado por outra aplicação?" algumas situações precisaram ser contornadas por tanto vou deixar esta ancora aqui pra comentarmos mais tarde
a partir daqui precisamos saber algumas definições necessarias para compreender como funcionar o javasond





Comentários
Postar um comentário