Pergunta

Eu teria pensado que isso seria uma coisa fácil de fazer, mas nenhuma quantidade de pesquisando em torno transformou-se quaisquer soluções.

Eu tenho escrito um pedido de um cliente que é executado em tela cheia e permite que o usuário para a página através de livros educacionais, a fim de ajudar a ensinar as crianças a ler. Por enquanto, tudo bem. Algumas frases dos materiais exibidos estão de volta leitura para o usuário e, mais uma vez, até aí tudo bem. Normalmente, esses sons são lidos no volume do sistema. (Ou seja, em qualquer volume de qualquer outro sistema de som seria jogado.)

O cliente, no entanto, agora quer que o usuário seja capaz de ajustar o volume no programa . Tenho a UI e processamento final desse trabalho, mas eu estou tendo dificuldade em ajustar o volume dos clipes que está sendo jogado em uma maneira significativa. Agora eu tenho uma configuração desagradável que envolve a leitura do ganho original do clipe e, em seguida, ajustando esse cima ou para baixo para cada clipe. Enquanto isso faz ajustar o volume, ele não parecem fazê-lo em relação ao volume do sistema -. Todos os sons são muito mais silencioso do que o volume do sistema

Então, minha pergunta realmente é:? Como sugere que controlar o volume de som dentro de um programa Toda a minha pesquisa revelou nada significativo, o que implica para mim que é meio difícil ou mesmo impossível , mas que simplesmente não parece certo.

Oh, detalhes: Estou lendo em WAVs como AudioInputStreams e jogando-os como java.sound.sampled.Clip. Eu estou controlando o ganho usando FloatControl.Type.MASTER_GAIN. (FloatControl.Type.VOLUME não é suportado.) Eu estou preso usando Java 1.4.

Foi útil?

Solução

Você também pode olhar para ver se há uma versão mais antiga do Java Media Framework (JMF), que apoiará Java 1.4 ... ele pode lhe proporcionar um ambiente mais rico para trabalhar com áudio.

Além disso, você diz que está preso em 1.4 ... que você pode ver se há alguma maneira você pode obter um upgrade para Java 5 ou 6, mas você pode querer testar um desses primeira em sua máquina local para ver se eles realmente ajudar qualquer.

Eu acho que uma última sugestão é encontrar alguns sites de desenvolvimento de jogos Java e postar sua pergunta lá; Eu acho que eles descobriram maneiras em torno dele ... embora você também pode obter uma série de respostas 'atualizar seu JVM' lá também. : -)

Boa sorte.

Outras dicas

Esta é uma coisa específica-OS para fazer, e você vai ter que usar JNI ou J / Invoke ou JNIWrapper ou jna ou ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top