2024-05-22 14:01:55 +02:00
|
|
|
import {Picker} from '@react-native-picker/picker';
|
|
|
|
|
import {Text} from 'react-native';
|
2024-09-20 16:26:20 +02:00
|
|
|
import {
|
|
|
|
|
SelectedTrackType,
|
|
|
|
|
type AudioTrack,
|
|
|
|
|
type SelectedTrack,
|
|
|
|
|
} from 'react-native-video';
|
2024-05-22 14:01:55 +02:00
|
|
|
import styles from '../styles';
|
|
|
|
|
import React from 'react';
|
|
|
|
|
|
|
|
|
|
export interface AudioTrackSelectorType {
|
|
|
|
|
audioTracks: Array<AudioTrack>;
|
|
|
|
|
selectedAudioTrack: SelectedTrack | undefined;
|
2024-09-20 16:26:20 +02:00
|
|
|
onValueChange: (arg0: string | number) => void;
|
|
|
|
|
audioTracksSelectionBy: SelectedTrackType;
|
2024-05-22 14:01:55 +02:00
|
|
|
}
|
|
|
|
|
|
2024-06-28 13:03:10 +03:30
|
|
|
export const AudioTrackSelector = ({
|
2024-05-22 14:01:55 +02:00
|
|
|
audioTracks,
|
|
|
|
|
selectedAudioTrack,
|
|
|
|
|
onValueChange,
|
2024-09-20 16:26:20 +02:00
|
|
|
audioTracksSelectionBy,
|
2024-05-22 14:01:55 +02:00
|
|
|
}: AudioTrackSelectorType) => {
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<Text style={styles.controlOption}>AudioTrack</Text>
|
|
|
|
|
<Picker
|
|
|
|
|
style={styles.picker}
|
|
|
|
|
itemStyle={styles.pickerItem}
|
|
|
|
|
selectedValue={selectedAudioTrack?.value}
|
|
|
|
|
onValueChange={itemValue => {
|
|
|
|
|
if (itemValue !== 'empty') {
|
|
|
|
|
console.log('on audio value change ' + itemValue);
|
2024-09-20 16:26:20 +02:00
|
|
|
onValueChange(itemValue);
|
2024-05-22 14:01:55 +02:00
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
{audioTracks?.length <= 0 ? (
|
|
|
|
|
<Picker.Item label={'empty'} value={'empty'} key={'empty'} />
|
|
|
|
|
) : (
|
|
|
|
|
<Picker.Item label={'none'} value={'none'} key={'none'} />
|
|
|
|
|
)}
|
|
|
|
|
{audioTracks.map(track => {
|
|
|
|
|
if (!track) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-09-20 16:26:20 +02:00
|
|
|
let value;
|
|
|
|
|
if (audioTracksSelectionBy === SelectedTrackType.INDEX) {
|
|
|
|
|
value = track.index;
|
|
|
|
|
} else if (audioTracksSelectionBy === SelectedTrackType.LANGUAGE) {
|
|
|
|
|
value = track.language;
|
|
|
|
|
} else if (audioTracksSelectionBy === SelectedTrackType.TITLE) {
|
|
|
|
|
value = track.title;
|
|
|
|
|
}
|
2024-05-22 14:01:55 +02:00
|
|
|
return (
|
|
|
|
|
<Picker.Item
|
2024-09-20 16:26:20 +02:00
|
|
|
label={`${value} - ${track.selected}`}
|
|
|
|
|
value={`${value}`}
|
|
|
|
|
key={`${value}`}
|
2024-05-22 14:01:55 +02:00
|
|
|
/>
|
|
|
|
|
);
|
|
|
|
|
})}
|
|
|
|
|
</Picker>
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
};
|