sexta-feira, 22 de agosto de 2008

Playback de Áudio

Existem dois tipos de line que podem ser usados para tocar som: Clip e SourceDataLine. A diferença principal entre estas duas interfaces é que com um Clip você especifica todas as informações do som uma única vez antes da execução. Com um SourceDataLine, escrevemos continuamente em buffers de informação durante a execução. Embora hajam situações em que ambas as classes possam ser utilizadas, o critério seguinte ajuda a identificar que tipo de line é melhor para determinada situação:
  • Utilize um Clip quando você não tem informações de som em tempo real que podem ser pré-carregadas na memória.
    Ex.: Loops, iniciar o playback em uma posição arbitrária.
  • Utilize um SourceDataLine para stream de informações tais como um arquivo de som muito longo que não irá caber todo na memória de uma vez, ou um som cuja informações não podem ser conhecidas antes do playback.
    Ex.: síntese interativa de sons.

Um comentário:

Matheus Pereira disse...

Amigo, voce sabe como que eu faço para acessar um line de entrada, no caso o microfone de forma simultanea? Por exemplo, ao mesmo tempo que preciso gravar a entrada do microfone para um arquivo, preciso abrir o stream de audio em tempo real exibir a modulação desse audio em um VU.. so que para conseguir esse audio em tempo real, estou acessando o line em uma thread paralela ao metodo AudioSystem.write, o que esta acontecendo que esta inteferindo na gravação, pois trava o VU as vezes e da problema na gravação. Tentei criar uma outra line paralela e gera uma exeção informando que nao é suportado o tipo de audio que estou configurando no metodo formatAudio().. Tem alguma ideia de como resolvo meu problema?? Por favor me responde para o meu email theusmpa@hotmail.com..
Obrigado!