mirror of
https://github.com/streamyfin/streamyfin.git
synced 2025-08-20 18:37:18 +02:00
feat: select audio
This commit is contained in:
@@ -307,6 +307,7 @@ export default function page() {
|
||||
offline={false}
|
||||
setSubtitleTrack={videoRef.current.setSubtitleTrack}
|
||||
setSubtitleURL={videoRef.current.setSubtitleURL}
|
||||
setAudioTrack={videoRef.current.setAudioTrack}
|
||||
stop={videoRef.current.stop}
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -72,6 +72,7 @@ interface Props {
|
||||
getSubtitleTracks?: () => Promise<TrackInfo[] | null>;
|
||||
setSubtitleURL?: (url: string) => void;
|
||||
setSubtitleTrack?: (index: number) => void;
|
||||
setAudioTrack?: (index: number) => void;
|
||||
stop?: () => Promise<void>;
|
||||
}
|
||||
|
||||
@@ -96,6 +97,7 @@ export const VlcControls: React.FC<Props> = ({
|
||||
getSubtitleTracks,
|
||||
setSubtitleURL,
|
||||
setSubtitleTrack,
|
||||
setAudioTrack,
|
||||
stop,
|
||||
offline = false,
|
||||
}) => {
|
||||
@@ -347,7 +349,7 @@ export const VlcControls: React.FC<Props> = ({
|
||||
>
|
||||
{/* <VideoDebugInfo playerRef={videoRef} /> */}
|
||||
|
||||
{setSubtitleURL && setSubtitleTrack && (
|
||||
{setSubtitleURL && setSubtitleTrack && setAudioTrack && (
|
||||
<View
|
||||
style={{
|
||||
position: "absolute",
|
||||
@@ -378,7 +380,6 @@ export const VlcControls: React.FC<Props> = ({
|
||||
collisionPadding={8}
|
||||
sideOffset={8}
|
||||
>
|
||||
<DropdownMenu.Label>Subtitle tracks</DropdownMenu.Label>
|
||||
<DropdownMenu.Sub>
|
||||
<DropdownMenu.SubTrigger key="image-style-trigger">
|
||||
Subtitle
|
||||
@@ -427,6 +428,49 @@ export const VlcControls: React.FC<Props> = ({
|
||||
: null}
|
||||
</DropdownMenu.SubContent>
|
||||
</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.Root>
|
||||
</View>
|
||||
|
||||
Reference in New Issue
Block a user