# VorbisBitArray

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

*** ** * ** ***


```
@UnstableApi
public final class VorbisBitArray
```

<br />

*** ** * ** ***

Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream.

See the [Vorbis bitpacking specification](https://www.xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-360002)

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#VorbisBitArray(byte[])(byte[] data)` Creates a new instance that wraps an existing array. |

| ### Public methods |
|---|---|
| `int` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#bitsLeft()()` Returns the number of remaining bits. |
| `int` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#getPosition()()` Returns the reading position in bits. |
| `boolean` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#readBit()()` Reads a single bit. |
| `int` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#readBits(int)(int numBits)` Reads up to 32 bits. |
| `void` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#reset()()` Resets the reading position to zero. |
| `void` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#setPosition(int)(int position)` Sets the reading position in bits. |
| `void` | `https://developer.android.com/reference/androidx/media3/container/VorbisBitArray#skipBits(int)(int numBits)` Skips `numberOfBits` bits. |

## Public constructors

### VorbisBitArray

```
public VorbisBitArray(byte[] data)
```

Creates a new instance that wraps an existing array.

| Parameters |
|---|---|
| `byte[] data` | the array to wrap. |

## Public methods

### bitsLeft

```
public int bitsLeft()
```

Returns the number of remaining bits.

### getPosition

```
public int getPosition()
```

Returns the reading position in bits.

### readBit

```
@CanIgnoreReturnValue
public boolean readBit()
```

Reads a single bit.

| Returns |
|---|---|
| `boolean` | `true` if the bit is set, `false` otherwise. |

### readBits

```
public int readBits(int numBits)
```

Reads up to 32 bits.

| Parameters |
|---|---|
| `int numBits` | The number of bits to read. |

| Returns |
|---|---|
| `int` | An integer whose bottom `numBits` bits hold the read data. |

### reset

```
public void reset()
```

Resets the reading position to zero.

### setPosition

```
public void setPosition(int position)
```

Sets the reading position in bits.

| Parameters |
|---|---|
| `int position` | The new reading position in bits. |

### skipBits

```
public void skipBits(int numBits)
```

Skips `numberOfBits` bits.

| Parameters |
|---|---|
| `int numBits` | The number of bits to skip. |