mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-06-05 13:38:27 +01:00
feat: select audio
This commit is contained in:
@@ -307,6 +307,7 @@ export default function page() {
|
|||||||
offline={false}
|
offline={false}
|
||||||
setSubtitleTrack={videoRef.current.setSubtitleTrack}
|
setSubtitleTrack={videoRef.current.setSubtitleTrack}
|
||||||
setSubtitleURL={videoRef.current.setSubtitleURL}
|
setSubtitleURL={videoRef.current.setSubtitleURL}
|
||||||
|
setAudioTrack={videoRef.current.setAudioTrack}
|
||||||
stop={videoRef.current.stop}
|
stop={videoRef.current.stop}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ interface Props {
|
|||||||
getSubtitleTracks?: () => Promise<TrackInfo[] | null>;
|
getSubtitleTracks?: () => Promise<TrackInfo[] | null>;
|
||||||
setSubtitleURL?: (url: string) => void;
|
setSubtitleURL?: (url: string) => void;
|
||||||
setSubtitleTrack?: (index: number) => void;
|
setSubtitleTrack?: (index: number) => void;
|
||||||
|
setAudioTrack?: (index: number) => void;
|
||||||
stop?: () => Promise<void>;
|
stop?: () => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,6 +97,7 @@ export const VlcControls: React.FC<Props> = ({
|
|||||||
getSubtitleTracks,
|
getSubtitleTracks,
|
||||||
setSubtitleURL,
|
setSubtitleURL,
|
||||||
setSubtitleTrack,
|
setSubtitleTrack,
|
||||||
|
setAudioTrack,
|
||||||
stop,
|
stop,
|
||||||
offline = false,
|
offline = false,
|
||||||
}) => {
|
}) => {
|
||||||
@@ -347,7 +349,7 @@ export const VlcControls: React.FC<Props> = ({
|
|||||||
>
|
>
|
||||||
{/* <VideoDebugInfo playerRef={videoRef} /> */}
|
{/* <VideoDebugInfo playerRef={videoRef} /> */}
|
||||||
|
|
||||||
{setSubtitleURL && setSubtitleTrack && (
|
{setSubtitleURL && setSubtitleTrack && setAudioTrack && (
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
position: "absolute",
|
position: "absolute",
|
||||||
@@ -378,7 +380,6 @@ export const VlcControls: React.FC<Props> = ({
|
|||||||
collisionPadding={8}
|
collisionPadding={8}
|
||||||
sideOffset={8}
|
sideOffset={8}
|
||||||
>
|
>
|
||||||
<DropdownMenu.Label>Subtitle tracks</DropdownMenu.Label>
|
|
||||||
<DropdownMenu.Sub>
|
<DropdownMenu.Sub>
|
||||||
<DropdownMenu.SubTrigger key="image-style-trigger">
|
<DropdownMenu.SubTrigger key="image-style-trigger">
|
||||||
Subtitle
|
Subtitle
|
||||||
@@ -427,6 +428,49 @@ export const VlcControls: React.FC<Props> = ({
|
|||||||
: null}
|
: null}
|
||||||
</DropdownMenu.SubContent>
|
</DropdownMenu.SubContent>
|
||||||
</DropdownMenu.Sub>
|
</DropdownMenu.Sub>
|
||||||
|
<DropdownMenu.Sub>
|
||||||
|
<DropdownMenu.SubTrigger key="image-style-trigger">
|
||||||
|
Audio
|
||||||
|
</DropdownMenu.SubTrigger>
|
||||||
|
<DropdownMenu.SubContent
|
||||||
|
alignOffset={-10}
|
||||||
|
avoidCollisions={true}
|
||||||
|
collisionPadding={0}
|
||||||
|
loop={true}
|
||||||
|
sideOffset={10}
|
||||||
|
>
|
||||||
|
{/* <DropdownMenu.CheckboxItem
|
||||||
|
key="none-item"
|
||||||
|
value="off"
|
||||||
|
onValueChange={() => {
|
||||||
|
videoRef.current?.setSubtitleTrack(-1);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<DropdownMenu.ItemIndicator />
|
||||||
|
<DropdownMenu.ItemTitle key={`none-item-title`}>
|
||||||
|
None
|
||||||
|
</DropdownMenu.ItemTitle>
|
||||||
|
</DropdownMenu.CheckboxItem> */}
|
||||||
|
{audioTracks?.length
|
||||||
|
? audioTracks?.map((a, idx: number) => (
|
||||||
|
<DropdownMenu.CheckboxItem
|
||||||
|
key={`subtitle-item-${idx}`}
|
||||||
|
value="off"
|
||||||
|
onValueChange={() => {
|
||||||
|
setAudioTrack(a.index);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<DropdownMenu.ItemIndicator />
|
||||||
|
<DropdownMenu.ItemTitle
|
||||||
|
key={`subtitle-item-title-${idx}`}
|
||||||
|
>
|
||||||
|
{a.name}
|
||||||
|
</DropdownMenu.ItemTitle>
|
||||||
|
</DropdownMenu.CheckboxItem>
|
||||||
|
))
|
||||||
|
: null}
|
||||||
|
</DropdownMenu.SubContent>
|
||||||
|
</DropdownMenu.Sub>
|
||||||
</DropdownMenu.Content>
|
</DropdownMenu.Content>
|
||||||
</DropdownMenu.Root>
|
</DropdownMenu.Root>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
Reference in New Issue
Block a user