'react-native-video onLoad onProgress not working IOS
I have used react-native video for playing audio files, it is working fine on android , but on ios it is not able to fire onLoad and onProgress functions which I am using to get duration and progress. Below is my code.
<Video source={{ uri: songPlaying.url }}
ref="audio"
volume={this.state.muted ? 0 : 1.0}
muted={false}
paused={!this.state.playing}
onLoad={this.onLoad.bind(this)}
onProgress={this.setTime.bind(this)}
onEnd={this.onEnd.bind(this)}
resizeMode="cover"
repeat={false} />
onLoad(params) {
this.setState({ songDuration: params.duration });
}
//called in onProgress to set time.
setTime(params) {
if (!this.state.sliding) {
this.setState({ currentTime: params.currentTime });
}
}
Solution 1:[1]
i am using react-native-video-player
and i was facing this onLoad issue on IOS. So as a work around i set loading to true in onLoadStart
event and i set loading to false in onVideoBuffer
as well as in onLoad
and onVideoLoad
. This is working fine on both IOS and Android for me.
here is the sample code
<VideoPlayer
onVideoBuffer={() => setisLoading(false)}
onLoadStart={() => setisLoading(true)}
onVideoLoad={() => setisLoading(false)}
onLoad={() => setisLoading(false)}
thumbnail={{ uri: item?.thumbnailUrl }}
controls={false}
paused={!autoplay || pause}
video={{
uri: item?.videoUrl,
}}
/>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Agha Ali Abbas |