# ResolvingDataSource.Resolver

# ResolvingDataSource.Resolver

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/datasource/ResolvingDataSource.Resolver "View this page in Java")

<br />

```
interface ResolvingDataSource.Resolver
```

<br />

*** ** * ** ***

Resolves[DataSpecs](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec).

## Summary

|                                       ### Public functions                                        |
|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)`!` | [resolveDataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/ResolvingDataSource.Resolver#resolveDataSpec(androidx.media3.datasource.DataSpec))`(dataSpec: `[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)`!)` Resolves a[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)before forwarding it to the wrapped[DataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource). |
| [Uri](https://developer.android.com/reference/android/net/Uri.html)`!`                            | [resolveReportedUri](https://developer.android.com/reference/kotlin/androidx/media3/datasource/ResolvingDataSource.Resolver#resolveReportedUri(android.net.Uri))`(uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)`!)` Resolves a URI reported by[getUri](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#getUri())for event reporting and caching purposes.                                                                                                                   |

## Public functions

### resolveDataSpec

```
fun resolveDataSpec(dataSpec: DataSpec!): DataSpec!
```

Resolves a[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)before forwarding it to the wrapped[DataSource](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource). This method is allowed to block until the[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)has been resolved.

Note that this method is called for every new connection, so caching of results is recommended, especially if network operations are involved.  

|                                                  Parameters                                                   |
|---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| `dataSpec: `[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)`!` | The original[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec). |

|                                              Returns                                              |
|---------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| [DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec)`!` | The resolved[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec). |

|                                         Throws                                          |
|-----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [java.io.IOException](https://developer.android.com/reference/java/io/IOException.html) | If an[IOException](https://developer.android.com/reference/java/io/IOException.html)occurred while resolving the[DataSpec](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSpec). |

### resolveReportedUri

```
fun resolveReportedUri(uri: Uri!): Uri!
```

Resolves a URI reported by[getUri](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#getUri())for event reporting and caching purposes.

Implementations do not need to overwrite this method unless they want to change the reported URI.

This method is*not*allowed to block.  

|                                  Parameters                                   |
|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| `uri: `[Uri](https://developer.android.com/reference/android/net/Uri.html)`!` | The URI as reported by[getUri](https://developer.android.com/reference/kotlin/androidx/media3/datasource/DataSource#getUri()). |

|                                Returns                                 |
|------------------------------------------------------------------------|--------------------------------------------------------|
| [Uri](https://developer.android.com/reference/android/net/Uri.html)`!` | The resolved URI used for event reporting and caching. |