diff --git a/API.md b/API.md index 7b073748..049cff51 100644 --- a/API.md +++ b/API.md @@ -352,7 +352,7 @@ var styles = StyleSheet.create({ | [onBandwidthUpdate](#onbandwidthupdate) | Android | | [onBuffer](#onbuffer) | Android, iOS | | [onEnd](#onend) | All | -| [onError](#onerror) | Android, iOS | +| [onError](#onerror) | Android, iOS, Windows UWP | | [onExternalPlaybackChange](#onexternalplaybackchange) | iOS | | [onFullscreenPlayerWillPresent](#onfullscreenplayerwillpresent) | Android, iOS | | [onFullscreenPlayerDidPresent](#onfullscreenplayerdidpresent) | Android, iOS | diff --git a/CHANGELOG.md b/CHANGELOG.md index 48ee215a..67238e51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Changelog ## Next +- Windows: fix `onError` not being raised [#3247](https://github.com/react-native-video/react-native-video/pull/3247) ### Version 6.0.0-alpha.8 - All: Playing audio over earpiece [#2887](https://github.com/react-native-video/react-native-video/issues/2887) diff --git a/windows/ReactNativeVideoCPP/ReactVideoView.cpp b/windows/ReactNativeVideoCPP/ReactVideoView.cpp index 4f49c222..cd2e7af3 100644 --- a/windows/ReactNativeVideoCPP/ReactVideoView.cpp +++ b/windows/ReactNativeVideoCPP/ReactVideoView.cpp @@ -132,7 +132,13 @@ void ReactVideoView::OnMediaOpened(IInspectable const &, IInspectable const &) { }); } -void ReactVideoView::OnMediaFailed(IInspectable const &, IInspectable const &) {} +void ReactVideoView::OnMediaFailed(IInspectable const &, IInspectable const &) { + runOnQueue([weak_this{get_weak()}]() { + if (auto strong_this{weak_this.get()}) { + strong_this->m_reactContext.DispatchEvent(*strong_this, L"topError", nullptr); + } + }); +} void ReactVideoView::OnMediaEnded(IInspectable const &, IInspectable const &) { runOnQueue([weak_this{get_weak()}]() {