Package com.google.android.exoplayer2.upstream

## Interface ResolvingDataSource.Resolver

- Enclosing class:
    ResolvingDataSource

      public static interface ResolvingDataSource.Resolver

  Resolves `DataSpecs`.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `DataSpec` | `resolveDataSpec​(DataSpec dataSpec)` | Resolves a `DataSpec` before forwarding it to the wrapped `DataSource`.
    `default Uri` | `resolveReportedUri​(Uri uri)` | Resolves a URI reported by `DataSource.getUri()` for event reporting and caching purposes.

- - ### Method Detail

    - #### resolveDataSpec

          DataSpec resolveDataSpec​(DataSpec dataSpec)
                            throws IOException

      Resolves a `DataSpec` before forwarding it to the wrapped `DataSource`. This method is allowed to block until the `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` - The original `DataSpec`.
      Returns:
        The resolved `DataSpec`.
      Throws:
        `IOException` - If an `IOException` occurred while resolving the `DataSpec`.

    - #### resolveReportedUri

          default Uri resolveReportedUri​(Uri uri)

      Resolves a URI reported by `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` - The URI as reported by `DataSource.getUri()`.
      Returns:
        The resolved URI used for event reporting and caching.