---
url: >-
  https://adk.nht.io/api/@nhtio/adk/common/functions/registerMediaReaderResolver.md
---

# Function: registerMediaReaderResolver()

```ts
function registerMediaReaderResolver(
  tag: string,
  resolver: MediaReaderResolver,
): void;
```

Defined in: [src/lib/contracts/reader\_resolvers.ts:54](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/lib/contracts/reader_resolvers.ts#L54)

Register (or replace) the resolver that re-binds a `media:` reader handle on decode.

## Parameters

| Parameter  | Type                                                            | Description                                                                                      |
| ---------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `tag`      | `string`                                                        | The descriptor tag this resolver handles (e.g. `"media:in-memory"`).                             |
| `resolver` | [`MediaReaderResolver`](../type-aliases/MediaReaderResolver.md) | Factory turning a captured locator back into a live [MediaReader](../interfaces/MediaReader.md). |

## Returns

`void`

## Remarks

Call once at application startup, before `decode()`. For durable stores, the resolver closure must
capture the same live binding the bytes were written with (e.g. the `fetch`-equivalent, an HTTP
client). The in-memory and fetch resolvers auto-register when the encoding battery loads; you only
register custom or durable ones yourself. Idempotent: re-registering the same `tag` overwrites.
