Providing a Level Meter
Many audio applications also provide a graphical " level meter,” which is an on-screen display of the loudness or softness of certain frequencies within the audio. In QuickTime Player, this is shown as a set of bars on the right side of the control bar, as seen in Figure 7-2.
Figure 7-2. Audio level meter in QuickTime Player
The intensity of lower frequencies, like bass, is shown in the leftmost columns, while higher frequencies are to the right.
How do I do that?
AudioMediaHandler
provides two key methods:
setSoundEqualizerBands()
to set up monitoring and
getSoundLevelMeterLevels()
to actually get the data.
setSoundEqualizerBands( )
indicates which
frequencies you want to monitor for your graphics display. These are
passed in the form of a
MediaEqSpectrumBands
object, which is built up by
constructing it with the number of bands you intend to monitor, then
repeatedly calling setFrequency()
to indicate which frequency a given band will monitor.
Note
Unfortunately, most of the level-metering methods are officially undocumented.
As the audio plays, you can repeatedly call
getSoundLevelMeterLevels( )
, which returns an
array of int
s representing the measured levels.
Example 7-4 creates a basic audio level meter in an AWT Canvas.
Note
Run this example with ant run-ch07-levelmeterplayer.
Example 7-4. Providing an audio level meter
package com.oreilly.qtjnotebook.ch07; ...
Get QuickTime for Java: A Developer's Notebook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.