Package com.tino1b2be.dtmf.io.mp3
AudioSourceProvider implementation for DTMF-Decoder v2.
This package hosts the public surface of the dtmf-io-mp3
module: Mp3AudioSourceProvider, the content-based MP3 provider
that the dtmf-io facade discovers via
ServiceLoader, and Mp3AudioSource, the
com.tino1b2be.dtmf.io.AudioSource implementation it returns from
open(...). The provider is registered through
META-INF/services/com.tino1b2be.dtmf.io.AudioSourceProvider so
simply adding dtmf-io-mp3 to a consumer's runtime classpath
enables AudioSources.open(mp3File) against MPEG-1 and MPEG-2
Layer III content without any additional wiring.
Decoding is delegated to exactly two external libraries
(Requirement 1.4): javazoom:jlayer:1.0.1 for the MPEG Layer III
decoder proper, and com.googlecode.soundlibs:mp3spi:1.9.5.4 for
the bridge into the javax.sound.sampled SPI that
Mp3AudioSource consumes via
AudioSystem.getAudioInputStream(java.io.InputStream).
Supported payloads are MPEG-1 and MPEG-2 Layer III at mono or stereo
channel counts, across both constant-bitrate and variable-bitrate streams
(Requirements 10.7 and 10.12); Layer I and Layer II payloads and
structurally malformed MPEG data are rejected with an
UnsupportedAudioFormatException identifying the defect or layer
(Requirement 10.8). Because the underlying decode is forward-only, MP3
sources report canSeek() == false and bitDepth() == 16
(Requirements 10.9 and 10.11). All production classes in the
dtmf-io-mp3 module live under this package root
(Requirement 2.6); parsing utilities that are not part of the public
surface live under com.tino1b2be.dtmf.io.mp3.internal.
The concrete types are introduced starting at Stage 7 of the
dtmf-io spec; this package-info.java is present from
Stage 1 so the source tree exists for the build-shape smoke tests in
Task 1.8.
- Since:
- 2.1.0
-
ClassesClassDescription
AudioSourceProviderimplementation for MPEG-1 and MPEG-2 Layer III (.mp3) content.