# VideoSink.Listener

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

*** ** * ** ***


```
public interface VideoSink.Listener
```

<br />

*** ** * ** ***

Listener for `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink` events.

## Summary

| ### Constants |
|---|---|
| `default static final https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#NO_OP()` A no-op listener implementation. |

| ### Public methods |
|---|---|
| `default void` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#onError(androidx.media3.exoplayer.video.VideoSink.VideoSinkException)(https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.VideoSinkException videoSinkException)` Called when the `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink` encountered an error. |
| `default void` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#onFirstFrameRendered()()` Called when the sink renders the first frame on the output surface. |
| `default void` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#onFrameAvailableForRendering()()` Called when an output frame is available for rendering. |
| `default void` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#onFrameDropped()()` Called when the sink dropped a frame. |
| `default void` | `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink.Listener#onVideoSizeChanged(androidx.media3.common.VideoSize)(https://developer.android.com/reference/androidx/media3/common/VideoSize videoSize)` Called before a frame is rendered for the first time after setting the output surface, and each time there's a change in the size, rotation or pixel aspect ratio of the video being rendered. |

## Constants

### NO_OP

```
default static final VideoSink.Listener NO_OP
```

A no-op listener implementation.

## Public methods

### onError

```
default void onError(VideoSink.VideoSinkException videoSinkException)
```

Called when the `https://developer.android.com/reference/androidx/media3/exoplayer/video/VideoSink` encountered an error.

### onFirstFrameRendered

```
default void onFirstFrameRendered()
```

Called when the sink renders the first frame on the output surface.

### onFrameAvailableForRendering

```
default void onFrameAvailableForRendering()
```

Called when an output frame is available for rendering.

### onFrameDropped

```
default void onFrameDropped()
```

Called when the sink dropped a frame.

### onVideoSizeChanged

```
default void onVideoSizeChanged(VideoSize videoSize)
```

Called before a frame is rendered for the first time after setting the output surface, and each time there's a change in the size, rotation or pixel aspect ratio of the video being rendered.