soundExt
|
Constructor Summary | |
SoundExt()
|
Method Summary | |
void |
play(int index)
Called to play the sound at the given index .
|
void |
loop(int index)
Called to begin looping the sound at the given index .
|
void |
stop(int index)
Called to stop the sound at the given index .
|
void |
init()
Called by the browser or applet viewer to load the sounds. The sounds are specified by the <PARAM> s. |
Constructor Detail |
public SoundExt()
Method Detail |
public void play(int index)
index
- the sound's index.public void loop(int index)
index
- the sound's index.public void stop(int index)
index
- the sound's index.public void init()
It looks for parameters of the form "soundindex", with index being a number begining at 0. In other words it looks for "sound0", "sound1", "sound2", and so on. It will continue until it cannot find the next in the series (the numbers must be contiguous).
The value of the parameter is treated as the URL of the sound file. This URL must be relative to the location of the document, otherwise known as the base URL. Realize that all sound files must be 8000Hz 8bit Mono µLaw encoded .au files. There are many software packages to convert other sound files like .wav and even raw sound to .au. The best is Cool Edit.
Note that you never call this method directly but is automatically called by the browser when you set up your sounds.
Example |
The following example shows how to initilize the sounds and use them in response to events. In the intrest of protecting those with older browsers and computers, the applet is dynamicaly embedded using JavaScript. The class has been tested to work on both Netscape and IE. However, when using more than one version of script, where the script is placed in the source file can make a difference.
onMouseOver onMouseOut onMouseDown onMouseUp onClick
A sound link to nothing.
Source:
<!-- make some aural possibilities -->
<script language="JavaScript">
<!--
//keep older browsers from choking on sound
function blankPlay(nothing) {}
function blankStop(nothing) {}
function blankLoop(nothing) {}
function blankSound() {
this.play = blankPlay;
this.stop = blankStop;
this.loop = blankLoop;
}
sound = new blankSound;
//-->
</script>
<script language="JavaScript1.2">
<!--
//only do sounds on cool browsers
//will work in any LiveConnected browser however
if (navigator.javaEnabled()) {
with(document) {
writeln('<applet code="soundext.class" name="sound" height="1" width="1">\n');
writeln('<param name="sound0" value="c4.au">\n');
writeln('<param name="sound1" value="d4.au">\n');
writeln('<param name="sound2" value="e4.au">\n');
writeln('<param name="sound3" value="f4.au">\n');
writeln('<param name="sound4" value="g4.au">\n');
writeln('<param name="sound5" value="looprockboat.au">\n');
writeln('</applet>');
}
}
//-->
</script>
<a href="none" onMouseOver="sound.play(0);" onClick="return false;">onMouseOver</a>
<a href="none" onMouseOut="sound.play(1);" onClick="return false;">onMouseOut</a>
<a href="none" onMouseDown="sound.play(2);" onClick="return false;">onMouseDown</a>
<a href="none" onMouseUp="sound.play(3);" onClick="return false;">onMouseUp</a>
<a href="none" onClick="sound.play(4); return false;">onClick</a>
<p>
<a href="none" onClick="sound.loop(5); return false;">Begin Loop</a>
<a href="none" onClick="sound.stop(5); return false;">End Loop</a>
<p>
<a href="nothing.html" title="A link to Nowhere" onMouseOver="window.status='A link to Nowhere'; sound.loop(5); return true;" onMouseOut="window.status=''; sound.stop(5); return true;" onMouseDown="sound.play(1); return true;" onMouseUp="sound.play(2); sound.stop(5); return true;">A sound link</a> to nothing.
Comments:
You must also have soundext.class (1213 bytes), as well as the sounds, in the current directory (or somewhere you can get at them). To add your own sounds simply add a line,
writeln('<param name="soundindex" value="pathToSound/soundName.au">\n');
Remember that the indexs must be continuous (i.e 0,1,2,3... and not 0,1,3,4...) or else the sounds after the "hole" will not be loaded. If you try to play them nothing will happen.