VideoFeedPlayerController
Controls a pool of players for video feed playback.
Typical UI integration:
Create one controller for the feed, usually in a ViewModel, on the main thread.
Observe items. When a VideoFeedItemState.player is non-null, attach it to your player view.
Call prepare for the initial item, or call select for the first visible item and let it prepare.
Call select whenever the visible/current item changes. Do not create or destroy players per row.
Forward host lifecycle events to onStart, onResume, onPause, and onStop.
Call release when the feed owner is disposed.
For Compose, keep scroll state in the UI, map the visible index to the matching VideoFeedItem, and pass that item to select.
This controller must be created and accessed on the application's main thread.
Functions
Appends items to the feed. Item IDs must be unique across existing and appended items.
Returns the feed item at index.