# MpegAudioUtil

Artifact: [androidx.media3:media3-extractor](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/extractor/MpegAudioUtil.java+class:androidx.media3.extractor.MpegAudioUtil)

*** ** * ** ***


```
@UnstableApi
public final class MpegAudioUtil
```

<br />

*** ** * ** ***

Utility methods for handling MPEG audio streams.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/media3/extractor/MpegAudioUtil.Header` Stores the metadata for an MPEG audio frame. |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/media3/extractor/MpegAudioUtil#MAX_FRAME_SIZE_BYTES() = 4096` Theoretical maximum frame size for an MPEG audio stream, which occurs when playing a Layer 2 MPEG 2.5 audio stream at 16 kb/s (with padding). |
| `static final int` | `https://developer.android.com/reference/androidx/media3/extractor/MpegAudioUtil#MAX_RATE_BYTES_PER_SECOND() = 40000` Maximum rate for an MPEG audio stream corresponding to MPEG-1 layer III (320 kbit/s), in bytes per second. |

| ### Public methods |
|---|---|
| `static int` | `https://developer.android.com/reference/androidx/media3/extractor/MpegAudioUtil#getFrameSize(int)(int headerData)` Returns the size of the frame associated with `header`, or `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` if it is invalid. |
| `static int` | `https://developer.android.com/reference/androidx/media3/extractor/MpegAudioUtil#parseMpegAudioFrameSampleCount(int)(int headerData)` Returns the number of samples per frame associated with `headerData`, or `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` if it is invalid. |

## Constants

### MAX_FRAME_SIZE_BYTES

```
public static final int MAX_FRAME_SIZE_BYTES = 4096
```

Theoretical maximum frame size for an MPEG audio stream, which occurs when playing a Layer 2 MPEG 2.5 audio stream at 16 kb/s (with padding). The size is 1152 sample/frame \* 160000 bit/s / (8000 sample/s \* 8 bit/byte) + 1 padding byte/frame = 2881 byte/frame. The next power of two size is 4 KiB.

### MAX_RATE_BYTES_PER_SECOND

```
public static final int MAX_RATE_BYTES_PER_SECOND = 40000
```

Maximum rate for an MPEG audio stream corresponding to MPEG-1 layer III (320 kbit/s), in bytes per second.

## Public methods

### getFrameSize

```
public static int getFrameSize(int headerData)
```

Returns the size of the frame associated with `header`, or `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` if it is invalid.

### parseMpegAudioFrameSampleCount

```
public static int parseMpegAudioFrameSampleCount(int headerData)
```

Returns the number of samples per frame associated with `headerData`, or `https://developer.android.com/reference/androidx/media3/common/C#LENGTH_UNSET()` if it is invalid.