Package com.tino1b2be.dtmf.io.mp3


package com.tino1b2be.dtmf.io.mp3
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