Speaking an alert message

This lesson demonstrates how to speak and display an alert message.

The speakAlert command

The speakAlert command speaks the text out loud, at the same time displaying the text in a dialog box.

This custom command takes one parameter, pText, and is used with a statement such as the following:

speakAlert "Go home now!"

speakAlert the finishMessage of me

speakAlert field "Info"

Checking the pText parameter

The first thing this handler does is make sure there is some text in the pText parameter. If there is no text, the dialog box will be empty, a bit confusing for the user, so to avoid this, if the pText parameter is empty, the handler uses the exit control structure to skip the rest of the handler.

if pText is empty then

exit speakAlert

end if

Speaking the text

The revSpeak command speaks the text passed to it out loud, using the built-in text-to-speech capability of Mac OS, OS X, and Windows systems. This command is not currently supported on Unix systems.

Because the revSpeak command is not supported on all platforms, we'll place it inside a try control structure. The try control structure offers a flexible way of handling errors: if something inside the try block causes an execution error, no error window is displayed. Instead, if there was an error, the statements in the catch block are executed. If there is no error, the catch block is ignored.

try

revSpeak pText

catch theError

put return & "(Cannot speak text on this system.)" after pText

beep

end try

If the revSpeak command is not supported on the current system, using it normally causes an execution error. In this handler, however, it's inside a try control structure, so LiveCode executes the contents of the catch block instead of displaying an error message. The catch block in this handler adds a message to the end of the text to notify the user that speech isn't supported. It also beeps, so that if the current system can't speak, it at least makes a noise. Text to speech is often used in situations where the user may not be looking at the screen. The sound makes sure users are alerted, even if they're doing something else when the dialog box appears.

Displaying the message

Finally, the handler displays the message in an answer dialog box. Because speaking the message takes a few seconds, the effect for the user is that the dialog box appears at more or less the same time that the computer begins speaking.

answer pText

The speakAlert command code

on speakAlert pText

if pText is empty then

## skip the rest

exit speakAlert

end if

 

try

## in case revSpeak isn't installed

revSpeak pText

catch theError

## if the "revSpeak" command fails

## make a sound to get the user's attention

put return & "(Cannot speak text on this system.)" after pText

beep

end try

 

## Display a dialog box

answer pText

end speakAlert

Note

If you want speech (or any similar action) to occur at the same time an answer dialog box is displayed, you need to perform the other action before using the answer command. This is because the answer command is blocking, it stops the handler until the user dismisses the dialog box, so if you use the revSpeak command after the answer command, the computer does not start speaking until after the user closes the dialog box.

0 Comments

Add your comment

E-Mail me when someone replies to this comment