Reproduzindo Lista de Mensagens
Início  Anterior  Próximo



Uma das mais importantes características da VoicerLib é a possibilidade de montar uma lista de mensagens que serão reproduzidas como se fossem uma só, gerando apenas um evento OnPlayStart no início e um OnPlayStop no final de todas.

Com isso o programador poderá montar frases ou seqüências de mensagens de maneira muito simples.

A lista de mensagens permite que sejam inseridas mensagens baseadas em arquivos, data, hora, valor ou numeral cardinal.

Vamos supor a seguinte frase: "Olá, hoje é dia 25 de setembro de 2001 às 12:32:45". Temos 4 partes distintas nesta frase:

·"Olá, hoje é dia" – Arquivo pré-gravado do usuário  
·"25 de setembro de 2001" – Data do Sistema (PlayDate)  
·"às" – Arquivo pré-gravado do usuário  
·"12:32:45" – Hora do Sistema (PlayTime)  
 
Adicionando Mensagens a Lista
 
Para adicionar uma ou mais mensagens a uma lista, deve-se utilizar o método PlayListAdd que tem o seguinte formato:
 
Voice1.PlayListAdd Porta, Tipo, String, Máscara, PausaAntes  
 
O parâmetro Porta refere-se ao canal a ser utilizado. A VoicerLib permite manter uma lista independente por canal.

O parâmetro Tipo indica que tipo de mensagem será reproduzida. Pode assumir os seguintes valores (representados por constantes):
 
·ptCardinal – Reproduzir um numeral cardinal (~ PlayNumber)  
·ptFile – Reproduzir um arquivo .SIG  
·ptDate – Reproduzir uma data (~ PlayDate)  
·ptTime – Reproduzir hora (~ PlayTime)  
·ptCurrency – Reproduzir um valor monetário  
·ptNumber – Reproduz números digito a digito.  

O terceiro parâmetro (String) deve assumir a formatação exigida pelos tipos acima, ou seja se for indicado que é do tipo ptFile, este parâmetro deve receber uma string com o nome do arquivo a ser reproduzido. Para saber os formatos corretos para cada tipo, consulte as funções independentes relacionadas (PlayTime, PlayDate, etc...) no começo desta seção.

A Máscara (4º. Parâmetro) é relacionada apenas ao tipo ptDate e segue a mesma padronização indicada no método PlayDate explicado anteriormente.

O último parâmetro é uma pausa a ser respeitada antes da reprodução da mensagem, expressa em milisegundos, ou seja, caso queira se esperar 1 segundo utilize o valor 1000. Cada mensagem da lista pode ter um valor diferente, ou seja, é possível dar pausas diferenciadas entre cada item da lista na hora da reprodução. Seguindo o exemplo de frase do começo desta seção, teríamos a seguinte codificação:

voice1.PlayListAdd Port, ptFile, "olahojeedia.sig","",0  
voice1.PlayListAdd Port, ptDate, Date, "d/m/y", 0  
voice1.PlayListAdd Port, ptFile, "as.sig", "", 0  
voice1.PlayListAdd Port, ptTime, Time, "", 0  
 
Apagando o Conteúdo de Uma Lista

A lista de mensagens permanece com seu conteúdo mesmo depois da reprodução portanto, é necessário apagar seu conteúdo antes de adicionar novos valores. Para isso deve ser utilizado o método PlayListClear passando como parâmetro o canal da placa:

voice1.PlayListClear Port    'Apaga a lista antes de usá-la  
voice1.PlayListAdd Port, ptFile, "olahojeedia.sig","",0  
(…)  
 
Verificando o tamanho da lista

Para saber quantos elementos existem dentro da lista, utilize o método PlayListGetCount, onde o único parâmetro é o canal e o valor de retorno, é a quantidade de elementos.

Dim i as integer  
 
i = voice1.PlayListGetCount(Port)  
 
Removendo um ítem Específico da Lista

Também é possível remover um determinado elemento da lista através do método PlayListRemoveItem. Este método tem dois parâmetros: a Porta e o índice do item a ser excluído (0 até n-1).

'remove o primeiro elemento da lista  
voice1.PlayListRemoveItem(Port,0)  
 
Reproduzindo a Lista de Mensagens
 
Após inserir os elementos da lista é possível reproduzi-la através do método PlayList, que tem o seguinte formato:
 
voice1.PlayList Port,TermDigits  
 
O primeiro parâmetro indica o canal da placa. Lembre-se que cada canal tem uma lista independente.

O parâmetro TermDigits é uma string que permite configurar quais dígitos poderão interromper a mensagem, exatamente como funciona nos outros métodos Playxxx.

O método PlayList também é assíncrono, ou seja, ao executar o comando o fluxo de execução do aplicativo segue imediatamente. O final da reprodução deverá ser monitorado através do evento OnPlayStop.

O método PlayList, apesar de reproduzir várias mensagens encadeadas, funciona da mesma forma que o PlayFile, ou seja, gera apenas um OnPlayStart no início e um OnPlayStop no final do último item.

Caso o parâmetro TermDigits seja utilizado e a lista de mensagens seja interrrompida por dígito, toda a lista será interrompida e serão gerados os eventos OnPlayStop e OnDigitsReceived, sendo que este último receberá o valor edDigitOverMessage na variável Status.

Na dúvida, leia novamente a explicação sobre o método PlayFile Tudo o que se refere a TermDigits aplica-se ao PlayList também.