Funções para Streaming de Audio
Início  Anterior  Próximo



Uma nova característica que está sendo implementada na VoicerLib é a disponibilidade de eventos e métodos que viabilizariam o envio da voz por uma rede local, por exemplo.

Do lado do servidor ou quem gerará as amostras para a rede, o princípio é disponibilizar as amostras de áudio captadas pela placa para aplicação. O envio das amostras para a rede propriamente dito não é responsabilidade da VoicerLib e deverá ser implementado pelo desenvolvedor utilizando bibliotecas com suporte ao WinSock ou mesmo através das funções de baixo nível das APIs do Windows.

Para iniciar o envio das amostras do hardware para a aplicação, deverá ser chamado o método EnableSampleToApp(porta). Este método faz com que o evento OnSampleReceived será gerado de tempos em tempos. Neste evento, o programador deverá extrair as amostras da FIFO e enviá-las pela rede.

Para extrair as amostras da fila que foi criada entre o hardware e a aplicação, utilize o método GetSamples.

Do lado do cliente as amostras chegarão através dos eventos TCP/IP ( que independem da VoicerLib) e deverão ser tratados de acordo com a vontade do programador. Se na máquina cliente houver uma placa VoicerPhone e o desejo é que o áudio seja ouvido através dela, deverá ser chamado inicialmente o método EnableSampleToCard que habilita o envio de amostras da aplicação para a placa.

Em seguida, a cada n amostras recebidas via TCP/IP, deverá ser chamado o método PutSamples que efetivamente envia a amostra para a placa. Isto tem o mesmo efeito do PlayFile, por exemplo.

Normalmente o programa deverá manter um buffer para receber e armazenar as amostras em memória para então enviá-las pela rede. Lembre-se que a taxa de envio de amostras de e para a placa deverá ser de 1.65 Kb/s pois o padrão é o envio e recebimento apenas no formato GSM.