# WavExtractor

# WavExtractor

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/wav/WavExtractor.java+class:androidx.media3.extractor.wav.WavExtractor)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/extractor/wav/WavExtractor "View this page in Java")

<br />

```
@UnstableApi
class WavExtractor : Extractor
```

<br />

*** ** * ** ***

Extracts data from WAV byte streams.

## Summary

|                                                       ### Constants                                                        |
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[ExtractorsFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorsFactory)`!` | [FACTORY](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#FACTORY()) Factory for[WavExtractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor)instances. |

|                                                   ### Public constructors                                                    |
|------------------------------------------------------------------------------------------------------------------------------|
| [WavExtractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#WavExtractor())`()` |

|                                ### Public functions                                 |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [init](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#init(androidx.media3.extractor.ExtractorOutput))`(output: `[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)`!)` Initializes the extractor with an[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput).                                                                                                                                                                                                                                                                                          |
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)         | `@`[Extractor.ReadResult](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor.ReadResult) [read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))`(input: `[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)`!, seekPosition: `[PositionHolder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/PositionHolder)`!)` Extracts data read from a provided[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput). |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [release](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#release())`()` Releases all kept resources.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [seek](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#seek(long,long))`(position: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`, timeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Notifies the extractor that a seek has occurred.                                                                                                                                                                                                                                                                                                                                                           |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [sniff](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor#sniff(androidx.media3.extractor.ExtractorInput))`(input: `[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)`!)` Returns whether this extractor can extract samples from the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput), which must provide data from the start of the stream.                                                                                                                                                                                                              |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ### Inherited Constants                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.media3.extractor.Extractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor) |-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [RESULT_CONTINUE](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_CONTINUE())` = 0` Returned by[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))if the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)passed to the next[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))is required to provide data continuing from the position in the stream reached by the returning call. | | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [RESULT_END_OF_INPUT](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_END_OF_INPUT())` = -1` Returned by[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))if the end of the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)was reached.                                                                                                                                                                                                                                                                          | | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [RESULT_SEEK](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_SEEK())` = 1` Returned by[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))if the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)passed to the next[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))is required to provide data starting from a specified position in the stream.                                 | |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.media3.extractor.Extractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor) |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `(`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[SniffFailure](https://developer.android.com/reference/kotlin/androidx/media3/extractor/SniffFailure)`!>!` | [getSniffFailureDetails](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#getSniffFailureDetails())`()` Returns additional details about the last call to[sniff](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#sniff(androidx.media3.extractor.ExtractorInput)).                                                                                                           | | [Extractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor)`!`                                                                                                                                                                                                               | `@`[SideEffectFree](https://checkerframework.org/api/org/checkerframework/dataflow/qual/SideEffectFree.html) [getUnderlyingImplementation](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#getUnderlyingImplementation())`()` Returns the 'real'`Extractor`implementation if this is a delegating instance, or` this`if this instance does the extraction directly without delegating (the default behaviour). | |

## Constants

### FACTORY

```
const val FACTORY: ExtractorsFactory!
```

Factory for[WavExtractor](https://developer.android.com/reference/kotlin/androidx/media3/extractor/wav/WavExtractor)instances.  

## Public constructors

### WavExtractor

```
WavExtractor()
```  

## Public functions

### init

```
fun init(output: ExtractorOutput!): Unit
```

Initializes the extractor with an[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput). Called at most once.  

|                                                        Parameters                                                        |
|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| `output: `[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)`!` | An[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)to receive extracted data. |

### read

```
@Extractor.ReadResult
fun read(input: ExtractorInput!, seekPosition: PositionHolder!): Int
```

Extracts data read from a provided[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput). Must not be called before[init](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#init(androidx.media3.extractor.ExtractorOutput)).

A single call to this method will block until some progress has been made, but will not block for longer than this. Hence each call will consume only a small amount of input data.

In the common case,[RESULT_CONTINUE](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_CONTINUE())is returned to indicate that the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)passed to the next read is required to provide data continuing from the position in the stream reached by the returning call. If the extractor requires data to be provided from a different position, then that position is set in`seekPosition`and[RESULT_SEEK](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_SEEK())is returned. If the extractor reached the end of the data provided by the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput), then[RESULT_END_OF_INPUT](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_END_OF_INPUT())is returned.

When this method throws an[IOException](https://developer.android.com/reference/java/io/IOException.html), extraction may continue by providing an[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)with an unchanged[read position](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput#getPosition())to a subsequent call to this method.  

|                                                          Parameters                                                          |
|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `input: `[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)`!`        | The[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)from which data should be read.                                                     |
| `seekPosition: `[PositionHolder](https://developer.android.com/reference/kotlin/androidx/media3/extractor/PositionHolder)`!` | If[RESULT_SEEK](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#RESULT_SEEK())is returned, this holder is updated to hold the position of the required data. |

|                                   Returns                                   |
|-----------------------------------------------------------------------------|------------------------------------------------------|
| [Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | One of the`RESULT_`values defined in this interface. |

|                                         Throws                                          |
|-----------------------------------------------------------------------------------------|---------------------------------------------------------|
| [java.io.IOException](https://developer.android.com/reference/java/io/IOException.html) | If an error occurred reading from or parsing the input. |

### release

```
fun release(): Unit
```

Releases all kept resources.  

### seek

```
fun seek(position: Long, timeUs: Long): Unit
```

Notifies the extractor that a seek has occurred.

Following a call to this method, the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)passed to the next invocation of[read](https://developer.android.com/reference/kotlin/androidx/media3/extractor/Extractor#read(androidx.media3.extractor.ExtractorInput,androidx.media3.extractor.PositionHolder))is required to provide data starting from`
position`in the stream. Valid random access positions are the start of the stream and positions that can be obtained from any[SeekMap](https://developer.android.com/reference/kotlin/androidx/media3/extractor/SeekMap)passed to the[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput).  

|                                        Parameters                                         |
|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
| `position: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) | The byte offset in the stream from which data will be provided. |
| `timeUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)   | The seek time in microseconds.                                  |

### sniff

```
fun sniff(input: ExtractorInput!): Boolean
```

Returns whether this extractor can extract samples from the[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput), which must provide data from the start of the stream.

If`true`is returned, the`input`'s reading position may have been modified. Otherwise, only its peek position may have been modified.  

|                                                      Parameters                                                       |
|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| `input: `[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)`!` | The[ExtractorInput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorInput)from which data should be peeked/read. |

|                                       Returns                                       |
|-------------------------------------------------------------------------------------|-----------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether this extractor can read the provided input. |

|                                         Throws                                          |
|-----------------------------------------------------------------------------------------|----------------------------------------------|
| [java.io.IOException](https://developer.android.com/reference/java/io/IOException.html) | If an error occurred reading from the input. |