O'Reilly logo

QuickTime for Java: A Developer's Notebook by Chris Adamson

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

Audio level meter in QuickTime Player

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; ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required