AudioCentric
Visit Online
AudioCentric is a Java applet, and can not read files from your local file system.
Therefore, AudioCentric must be run from an HTTP server.
File Format
AudioCentric supports two versions of GSM: standard GSM 6.10 and Microsoft's non-standard GSM.
The default distribution contains the Microsoft non-standard version. If you require the true standard version then send in an email request.
How to record GSM audio.
Applet parameters
BUFFERING:
AudioCentric buffering may be controlled by the Web developer via the applet tag "bufferlevel" as follows:
- <PARAM name='bufferlevel' value='5'> : Buffer 5 seconds of audio (default).
- <PARAM name='bufferlevel' value='10%'> : Buffer 10 percent of the audio.
- <PARAM name='bufferlevel' value='100%'> : Buffer the entire file.
In addition, the above setting are dynamically adjusted according to the speed in which data arrives. If data arrives two times or ten times faster than it will play, AudioCentric will adjust the bufferlevel setting to two times or ten times shorter respectively. If data arrives two times or ten times slower than it will play, AudioCentric will adjust the bufferlevel to two times or ten times longer respectively.
In order to buffer a specific percentage of audio data, AudioCentric must be told the size of the data file by the HTTP server when a connection is initially established. Not all HTTP servers provide this information however. If AudioCentric is set to buffer a certain percent of data and the HTTP server does not provide the file size, then AudioCentric will consider the percentage value as the number of seconds it should buffer.
There is one exception to all the above rules: if you instruct AudioCentric to buffer '100%' then it will always buffer the entire file before play begins.
AutoStart tag
Determines whether the audio file will play immediately upon applet initialization, or whether the user must explicitly select it to play.
- <PARAM name="autostart" value="false"> (default)
- <PARAM name="autostart" value="true">
User Interface (UI) tag
Determines which user interface (if any) will be displayed.
- <PARAM name="UI" value="applet"> : AudioCentric will display as an embedded applet within the Web document.
- Not specified : No interface will appear, however AudioCentric is controllable through Javascript commands.
File tag
Declares what file AudioCentric should load at initialization time.
- <PARAM name="file" value="twinkle.wav">
- <PARAM name="file" value="http://host/path/twinkle.wav">
Javascript Commands
- playAudio( [filename] )
- If the filename is not specified then it defaults to the current file (if any).
- pauseAudio()
- stopAudio()
Javascript Callbacks
AudioCentric is capable of passing events back to the Javascript code.
To enable receiving these events you must do the following:
1) Include the string "MAYSCRIPT" within your APPLET tag.
2) Include a Javascipt function called "handleEvent(int)".
For example: (from the index.html file included in the distribution)
<HTML>
<BODY>
<SCRIPT>
IE4 = (document.all) ? 1 : 0;
NS4 = (document.layers) ? 1 : 0;
var Watermark = 4; // buffering has reached watermark (ie: when play begins)
var Prefetched = 5; // buffering is complete (ie: the entire file has been received)
var StartEvent = 6; // play started
var EndOfMedia = 7; // play completed normally
var Terminated = 11; // play aborted
function handleEvent(eventType) {
if(eventType == Watermark) writeIt("Watermark reached.");
else if(eventType == Prefetched) writeIt("Buffering complete.");
else if(eventType == StartEvent) writeIt("Play started.");
else if(eventType == EndOfMedia) writeIt("Play finished normally.");
else if(eventType == Terminated) writeIt("Play finished abnormally.");
}
function writeIt(s) {
if (NS4) {
document.layers.appletStatus.document.open('text/html');
document.layers.appletStatus.document.write(s);
document.layers.appletStatus.document.close();
}
else {
appletStatus.innerHTML=s;
}
}
</SCRIPT>
<APPLET CODE="AudioCentric.Player" name="AudioCentric" archive="AudioCentric.jar" MAYSCRIPTR></APPLET>
</BODY>
</HTML>
Deployment
AudioCentric may be instantiated multiple times within a Web document; however, this requires extra work on the browser's part. The alternative method is to load the AudioCentric applet only once and then pass it subsequent file references through Javascript.
Three browser archive files are provided to support different browser implementations as follows:
- .zip : Navigator 3+
- .jar : Navigator 4+
- .cab : IE 4+
BUGS
If the user plays a gsm audio when there is no audio device available, the underlying browser's Java Virtual Machine (VM) seems to enter a busy wait loop and hangs the browser if you try to access the audio device again.
You can recreate the situation by openning both Explorer and Navigator. Start an audio file playing in one browser and, while it is playing, try and start another audio file playing in the other browser.
If this situation arises, AudioCentric avoids hanging the browser by not permitting any subsequent audio play. The browser will continue to operate, but to use AudioCentric again, the user must restart the browser.
This software is free for non-commercial use only. All rights reserved.
Back to the AudioCentric applet page
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|