Fórum de Suporte Digivoice
Você não está logado.
Olá,
Existe mais algum procedimento a ser feito antes ou após a utilização da função 'AudioMonitor' fora os descritos no manual, na referência da função?
Estou tentando utilizá-la quando se quer ouvir determinada porta que tenha atendido uma ligação, e já tenha a thread de 'InputBuffer' ativada para esta porta, estando a referida porta também sendo gravada. Quando faço uma chamada para 'AudioMonitor' não há nenhum áudio na saída de áudio do PC, embora nenhum erro seja gerado por esta função, pois a mesma retorna 'DG_EXIT_SUCCESS'.
Há mais alguma coisa a ser feita e que, porventura, tenha escapado do manual da versão 4.3.0.0rc4?
Grato pela atenção.
João Lira.
Última alteração por joaolira (14/02/2011 18:37:25)
Offline
Olá,
Para complementar os dados, informo que o teste está sendo executado numa máquina Windows XP SP3 32 bits.
Grato pela atenção.
João Lira.
Offline
Boa Tarde,
Você está utilizando a placa FXO? Se sim, por favor faça um teste: no programa de teste da placa FXO possui uma opção "Monitorar Áudio".
Faça o teste e verifique se funciona.
Qualquer dúvida estou a disposição.
Olá, PattyC,
Não, estou usando a VB6060 PCI. Existe alguma versão recente do programa de teste para ela também?
Grato pela atenção.
João Lira.
Offline
Olá, PattyC,
Instalei a nova versão da VoicerLib (4.3.0.0 FINAL) e, nos meus testes, o 'AudioMonitor' continua não funcionando, apesar da chamada ao mesmo retornar 'DG_EXIT_SUCCESS'. O que estou fazendo, segundo o manual:
1) Thread 'InputBuffer' ativada para a porta que se quer áudio no PC;
2) Chamada para 'AudioMonitor' com o parâmetro 'DG_ENABLE'.
Até o momento, nada de áudio na saída de áudio do PC. Complementando as informações acima, informo que:
1) A função 'AudioMonitor' não foi chamada para nenhuma outra porta;
2) A mesma porta cujo aúdio se quer ouvir na saída do PC também está sendo gravada sem problemas (gravação normal, sem ser em paralelo);
3) Testei em duas placas VB6060 PCI, uma fabricada em 2007 e outra fabricada em 2010, e em ambas o resultado é o mesmo: sem áudio na saída do PC.
Grato pela atenção.
João Lira.
Última alteração por joaolira (16/02/2011 16:25:14)
Offline
Bom Dia Joao,
Vou fazer os testes com o seu ambiente aqui no desenvolvimento e com a última Voicerlib (4.3.0.0) liberada e te retorno.
Atenciosamente.
Bom dia, PattyC,
Ok, fico no aguardo. Se precisar que eu faça algum teste específico aqui, me avise.
Grato pela atenção.
João Lira.
Offline
Boa tarde João.
Temos este método somente no programa de teste da placa FXO (respondendo a uma pergunta anterior).
Os testes aqui no desenvolvimento foram feitos com uma placa E1 (VB6060pci) e com a VoicerLib 4.3.0.0 (última liberada até o momento) e funcionou corretamente.
Segue a sequência do teste que fizemos:
- Após inicializar a VoicerLib (StartVoicerlib), habilitamos o InputBuffer para todas as portas (EnableInputBuffer,1)
- Ligações saintes: Após a discagem (Dial), utilizamos o método AudioMonitor (DG_ENABLE)
- Ligações entrantes: Após a chegada do evento de ring (OnRingDetected), utilizamos o método AudioMonitor (DG_ENABLE)
- Em caso de ocupado (OnBusyDetected) e antes de finalizar a Voicerlib (ShutDownVoicerlib), desabilitamos a monitoração do áudio (AudioMonitor(port,DG_DISABLE)) e desabilitamos o InputBuffer (DisableInputBuffer).
Faça estas verificações no seu código e qualquer dúvida por favor nos avise, estamos a disposição para ajudá-lo.
Atenciosamente.
Bom dia, PattyC,
Tentei repetir a seqüência de testes de vocês, mas não consegui fazer funcionar o 'AudioMonitor' até o momento. Erro a função não retorna, mas também não tenho áudio na saída do PC. Entretanto gostaria de tirar algumas dúvidas:
1) O método somente funciona se for chamado logo no evento 'OnRingDetected'?
2) Vocês fizeram testes de funcionamento do método para o caso de a ligação estar sendo gravada ao mesmo tempo?
Pergunto isso, pois na minha aplicação, as chamadas são todas gravadas, e eu gostaria que o usuário pudesse clicar em determinada porta que estivesse com ligação ativa e ouvir o áudio no PC. Para isso, o método teria de ser chamado naquele momento, isto é, quando o usuário quisesse ouvir a porta, e isto seria quando a ligação já estivesse atendida e sendo gravada. Se o método prescindir da ativação logo no evento 'OnRingDetected' isso não será possível, ainda mais que o método somente pode ser chamado para uma porta de cada vez. Existe alguma limitação do 'AudioMonitor' quanto a isto?
Se não der certo, vou tentar utilizar o 'CallBack' para o que preciso.
Grato pela atenção.
João Lira.
Última alteração por joaolira (21/02/2011 12:01:46)
Offline
Boa Tarde João,
Em que linguagem você está desenvolvendo?
Atenciosamente.
Olá, PattyC,
É em Delphi.
Grato pela atenção.
João Lira.
Offline
Oi João!
Vamos fazer o seguinte: vou montar um exemplo para placa E1 em Delphi que faz gravação e utiliza o método de AudioMonitor e deixo disponível no site pode ser? Desta forma acho que facilita achar o problema e tira as dúvidas pode ser?
No aguardo.
Boa Tarde João!
Disponibilizei para download (em nosso site na área de exemplos de Delphi para placa E1) um exemplo chamado "Exemplo de HelloDigi com Audio Monitor", o mesmo monitora a gravação de recado.
Fiz os testes aqui e funcionou corretamente.
Qualquer dúvida estou a disposição.
Atenciosamente.
Bom dia, PattyC,
Baixei o seu exemplo, mas ocorreu um fato curioso: na placa de 2007, que é a que uso para desenvolvimento, a E1 não sincroniza quando executo o 'HelloDigi' do seu exemplo, ou compilo e executo o exemplo. Com os outros dois 'HelloDigi' disponíveis no sítio de vocês, não há problema em sincronizar. Não consegui verificar onde está o problema, a não ser pelas chamadas ISDN do exemplo novo. Na placa de 2010 consigo o sincronismo, mas até o momento não consegui fazero 'AudioMonitor' funcionar.
Verifiquei que a forma como o 'AudioMonitor' está sendo chamado no seu exemplo e em minha aplicação em nada difere. Entretanto, ainda não funciona em minha aplicação.
Agradeço sua atenção, mas vou continuar os testes para tentar descobrir como resolver essa situação.
João Lira.
Offline
Boa Tarde João.
No mesmo link atualizei o exemplo somente para R2D MFC.
Por favor refaça os testes e me avise.
No aguardo.
Atenciosamente.
Olá, PattyC,
Acabei de baixar a versão mais recente e testei aqui. Agora funcionou em ambas as placas!
Bom, vou verificar com calma minha aplicação para ver o que pode estar errado.
Muito obrigado pela atenção!
João Lira.
Offline
Oi João!
Que bom que funcionou! Qualquer dúvida estamos a disposição.
Atenciosamente.
Olá!
Outra coisa, verifique se há algum problema no áudio do micro ou se o áudio do Windows está o padrão.
Atenciosamente.