[These posts are currently in WIP state and will be updated over time]
ProTV (current release version: 2.0) is a pay-what-you-want asset that intends to make working with video players a more enjoyable experience by enabling extensibility through event driven activity.
- Introduction and Overview [You are here]
- Core Architecture Deep Dive
- Plugins Overview
- MediaControls Plugin Deep Dive
- Playlist Plugin Deep Dive
- Queue Plugin Briefing
- Skybox Plugin Briefing
- How to integrate AudioLink
- So you want to make your own Plugin? Tips, Tricks and Best Practices
- Bad with code? How to use UdonGraph with ProTV
At its core, ProTV is a central management script that brokers the state and activity of video players that are connected to it. It is capable of handling multiple video players by swapping between them and retaining proper sync to other users while doing so. Based on the state and activity of the management script, it will propagate events and data to other udon scripts that have registered themselves as a listener.
Beta releases (containing the latest feature development) is available via discord (Join Here)
Monetary support for the project also accepted on Ko-Fi
If you are looking for an out-of-the-box solution that doesn’t take much if any effort to add to your world, check out the Assets/ArchiTechAnon/ProTV/Prefabs folder after importing. This is a selection of TVs that should #justwork. They also support multiple independent copies in-world, no problem. Though if you want something a bit more custom, please continue reading though the guides to get a full grasp of how the ProTV system is setup.
 Note: do be aware that in excess of 8 in a world, some performance loss may become apparent.
The primary driver behind this asset is the ``````````````TVManagerV2.cs script (aka “main script”). When the developer is setting up the world with a new TV, they will need to first declare what video players the main script will manage. This is done by attaching either a Unity Player or AVPro Video Player script into the scene and adding the VideoManagerV2.cs script to that same game object. Then drag the game object to the Video Players array of the TVManagerV2 script inspector. Repeat until the desired video players are connected. This is the fundamental setup.
With this completed, the main script will now broker state and activity between the connected video players and any udon behavior that declares itself a listener to the main script.
[TODO insert architecture flowchart]
There are quite a number of ways that you can customize ProTV for various situations. The two most meaningful ways to customize are related to the Speakers (audio sources) / Screens (mesh w/ shader) as well as various Plugins that are either provided in the asset or that you can make yourself (more on plugins in a bit).
 If you are wanting to customize the audio sources a lot, I highly recommend you have a look at TEXTLOGO’s Audio Demo World for ideas and general setup for certain audio considerations and situations.