Media PlayerControls
ControlsGroup
Groups related controls together
Groups related controls together. Controls within a group appear/disappear together based on player state.
Props
Prop
Type
Examples
Basic Usage
import {
MediaProvider,
PlayerProvider,
PlayerContainer,
ShakaVideo,
ControlsContainer,
ControlsGroup,
PlayButton,
MuteButton
} from "@shelby-protocol/player";
function CustomControls() {
return (
<MediaProvider>
<PlayerProvider>
<PlayerContainer>
<ShakaVideo
src="https://example.com/video.m3u8"
poster="https://example.com/poster.jpg"
className="w-full"
/>
<ControlsContainer>
<ControlsGroup className="p-4">
<PlayButton />
<MuteButton />
</ControlsGroup>
</ControlsContainer>
</PlayerContainer>
</PlayerProvider>
</MediaProvider>
);
}Multiple Groups
import {
MediaProvider,
PlayerProvider,
PlayerContainer,
ShakaVideo,
ControlsContainer,
ControlsGroup,
Seekbar,
PlayButton,
CurrentTimeDisplay
} from "@shelby-protocol/player";
function CustomControls() {
return (
<MediaProvider>
<PlayerProvider>
<PlayerContainer>
<ShakaVideo
src="https://example.com/video.m3u8"
poster="https://example.com/poster.jpg"
className="w-full"
/>
<ControlsContainer>
<div className="flex-1" />
<ControlsGroup className="px-4 w-full">
<Seekbar />
</ControlsGroup>
<ControlsGroup className="p-4">
<PlayButton />
<CurrentTimeDisplay />
</ControlsGroup>
</ControlsContainer>
</PlayerContainer>
</PlayerProvider>
</MediaProvider>
);
}With Custom Styling
import {
MediaProvider,
PlayerProvider,
PlayerContainer,
ShakaVideo,
ControlsContainer,
ControlsGroup,
PlayButton,
FullscreenButton
} from "@shelby-protocol/player";
function CustomControls() {
return (
<MediaProvider>
<PlayerProvider>
<PlayerContainer>
<ShakaVideo
src="https://example.com/video.m3u8"
poster="https://example.com/poster.jpg"
className="w-full"
/>
<ControlsContainer>
<ControlsGroup className="p-4 bg-gradient-to-t from-black/80 to-transparent">
<PlayButton className="hover:scale-110 transition-transform" />
<div className="flex-1" />
<FullscreenButton className="hover:scale-110 transition-transform" />
</ControlsGroup>
</ControlsContainer>
</PlayerContainer>
</PlayerProvider>
</MediaProvider>
);
}