diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efe65552..cbe507ed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16.x - run: yarn --no-lockfile - run: yarn lint 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 37b4c694..3ed2633e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Next - Windows: fix build error from over-specified SDK version [#3246](https://github.com/react-native-video/react-native-video/pull/3246) +- 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()}]() {