Closed jamsch closed 4 months ago
this is a music library though, this is more relevant for the RN-video community (and is being worked on): https://github.com/react-native-video/react-native-video/pull/3541 isnt .lrc more relevant for music? and there are solutions for this RNTP really just plays music in the background, wont and shouldnt give a webview
This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days.
This issue was closed because it has been stalled for 7 days with no activity.
What is the need and use case of this feature?
This is a wild shot, but would it be feasible adding WebVTT support in RNTP? Nothing in the RN space seems to support the following features:
Describe the ideal solution
Player.Listener@onCues
cuechange
event so that the user can access the current track cue.SubtitleView
component export from the library, however I don't know how this would play well with iOS.Describe alternatives you've considered
And using a simple binary search to locate the current cue:
However the issue with this current approach is that I'm finding that the timestamps (at least with the
expo-av
lib at the moment) are extremely unreliable and can be seconds out of sync with the actual underlying audio progress (even with no JS frame loss + 250ms reporting intervals).Additional context
After experimenting with integrating WebVTT in Android Media3 ExoPlayer (using Expo Native Modules) about a year ago on this issue, I managed to get it working pretty good, however the solution was extremely hacky (due to my limited knowledge of the Android ecosystem) and I haven't yet tried integrating it on a mature AV project such as this one, or expo-av.
How I can Help
I'll likely have some free time soon to work on this again for Android and iOS, however my efforts will be in integrating this feature in a simple standalone player in a separate repo, just so that I can get a proof-of-concept out. I have no expertise in Kotlin/Swift so there'll need to be an experienced native developer to be able to integrate it in to this library.