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 ints 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; ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access