fix(ios): fix text track selection by index (#3728)

* fix(ts): onPlaybackRateChangeData was not correctly typed

* fix: ensure tracks are well displayed in the sample

* fix(ios): text tracks selection by index. regression due to codegen rework

* chore: make selection by index testable (need a small manual patch)

* chore(ios): fix linter warning
This commit is contained in:
Olivier Bouillet
2024-05-04 15:20:59 +02:00
committed by GitHub
parent 4c63988d12
commit 51e22abfe3
3 changed files with 35 additions and 17 deletions

View File

@@ -104,6 +104,9 @@ class VideoPlayer extends Component {
seekerWidth = 0;
// internal usage change to index if you want to select tracks by index instead of lang
textTracksSelectionBy = 'lang';
srcAllPlatformList = [
{
description: 'local file landscape',
@@ -300,7 +303,10 @@ class VideoPlayer extends Component {
if (selectedTrack?.language) {
this.setState({
textTracks: data.textTracks,
selectedTextTrack: {
selectedTextTrack: this.textTracksSelectionBy === 'index' ? {
type: 'index',
value: selectedTrack?.index,
}: {
type: 'language',
value: selectedTrack?.language,
},
@@ -804,7 +810,7 @@ class VideoPlayer extends Component {
console.log('on value change ' + itemValue);
this.setState({
selectedTextTrack: {
type: 'language',
type: this.textTracksSelectionBy === 'index' ? 'index': 'language',
value: itemValue,
},
});
@@ -814,13 +820,21 @@ class VideoPlayer extends Component {
if (!track) {
return;
}
return (
<Picker.Item
label={track.language}
value={track.language}
key={track.language}
/>
);
if (this.textTracksSelectionBy === 'index') {
return (
<Picker.Item
label={`${track.index}`}
value={track.index}
key={track.index}
/>);
} else {
return (
<Picker.Item
label={track.language}
value={track.language}
key={track.language}
/>);
}
})}
</Picker>
)}