# VideoPlayer.EventHandler

> Delegate type for all events without parameters emitted by VideoPlayer s.

## Definition

* **Type:** Delegate
* **Namespace:** [UnityEngine.Video](/engine/6000.0/script-reference/unityengine/video.md)
* **Assembly:** UnityEngine.VideoModule

```csharp
public delegate void VideoPlayer.EventHandler(VideoPlayer source)
```

## Remarks

Use this EventHandler to define what you want to happen when the [VideoPlayer](/engine/6000.0/script-reference/unityengine/video/videoplayer.md) emits certain events. This EventHandler accepts the following VideoPlayer events:

* [VideoPlayer.loopPointReached](/engine/6000.0/script-reference/unityengine/video/videoplayer/looppointreached.md)
* [VideoPlayer.started](/engine/6000.0/script-reference/unityengine/video/videoplayer/started.md)
* [VideoPlayer.prepareCompleted](/engine/6000.0/script-reference/unityengine/video/videoplayer/preparecompleted.md)
* [VideoPlayer.seekCompleted](/engine/6000.0/script-reference/unityengine/video/videoplayer/seekcompleted.md)

This EventHandler doesn't accept events that have parameters.

Additional Resources: For EventHandlers that can accept parameters, refer to [VideoPlayer.ErrorEventHandler](/engine/6000.0/script-reference/unityengine/video/videoplayer/erroreventhandler.md) which handles [VideoPlayer.errorReceived](/engine/6000.0/script-reference/unityengine/video/videoplayer/errorreceived.md), [VideoPlayer.FrameReadyEventHandler](/engine/6000.0/script-reference/unityengine/video/videoplayer/framereadyeventhandler.md) which handles [VideoPlayer.frameReady](/engine/6000.0/script-reference/unityengine/video/videoplayer/frameready.md), and [VideoPlayer.TimeEventHandler](/engine/6000.0/script-reference/unityengine/video/videoplayer/timeeventhandler.md).

## Examples

```csharp
// This script sets up a generic EventHandler to process a few different parameter-less events from the VideoPlayer. 

using UnityEngine;
using UnityEngine.Video;

public class EventHandlerExample : MonoBehaviour
{
    public VideoPlayer videoPlayer;


    void Start()
    {
        videoPlayer = GetComponent<VideoPlayer>();

        // Define a generic EventHandler for events that have the same signature.
        VideoPlayer.EventHandler eventHandler = OnVideoPlayerEvent;

        // Assign the generic EventHandler to manage multiple VideoPlayer events. 
        videoPlayer.prepareCompleted += eventHandler;
        videoPlayer.started += eventHandler;
        videoPlayer.loopPointReached += eventHandler;
        videoPlayer.seekCompleted += eventHandler;

        videoPlayer.Prepare();
    }

    // All those events will invoke this same function and be handled the same way. 
    private void OnVideoPlayerEvent(VideoPlayer vp)
    {
        Debug.Log("An event occurred on VideoPlayer.");
    }
}
```
