6.x.xMissing ReproNewer Version AvailablePlatform: WindowsV6bugdifficulty: easygood first issuehelp wantedpriority: lowtriaged
仓库指标
- Star
- (7,677 star)
- PR 合并指标
- (平均合并 2天 3小时) (30 天内合并 11 个 PR)
描述
What happened?
The app crashes when the source prop is set to null (only on Windows). The issue persists on both Debug and Release builds.
According to the documentation, providing a null source value after loading a previous source should stop playback and clear out the previous source content. Instead, the Video component crashes.
onError message:
{"errorString":"invalid url, player will stop","errorCode":"INVALID_URL"}
Callstack:
ucrtbase.dll!7597eddb() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for ucrtbase.dll]
[External Code]
> ReactNativeVideoCPP.dll!winrt::throw_hresult(const winrt::hresult result) Line 4966 C++
ReactNativeVideoCPP.dll!winrt::ReactNativeVideoCPP::implementation::ReactVideoViewManager::UpdateProperties(const winrt::Windows::UI::Xaml::FrameworkElement & view, const winrt::Microsoft::ReactNative::IJSValueReader & propertyMapReader) Line 97 C++
ReactNativeVideoCPP.dll!winrt::impl::produce<winrt::ReactNativeVideoCPP::implementation::ReactVideoViewManager,winrt::Microsoft::ReactNative::IViewManagerWithNativeProperties>::UpdateProperties(void * view, void * propertyMapReader) Line 6109 C++
[Inline Frame] Microsoft.ReactNative.dll!winrt::impl::consume_Microsoft_ReactNative_IViewManagerWithNativeProperties<winrt::Microsoft::ReactNative::IViewManagerWithNativeProperties>::UpdateProperties(const winrt::Windows::UI::Xaml::FrameworkElement &) Line 2242 C++
Microsoft.ReactNative.dll!winrt::Microsoft::ReactNative::ABIViewManager::UpdateProperties(Microsoft::ReactNative::ShadowNodeBase * nodeToUpdate, winrt::Microsoft::ReactNative::JSValueObject & props) Line 128 C++
Microsoft.ReactNative.dll!Microsoft::ReactNative::ShadowNodeBase::updateProperties(winrt::Microsoft::ReactNative::JSValueObject & props) Line 31 C++
Microsoft.ReactNative.dll!Microsoft::ReactNative::UIManagerModule::createView(__int64 reactTag, std::string viewName, __int64 rootTag, winrt::Microsoft::ReactNative::JSValueObject && props) Line 155 C++
Microsoft.ReactNative.dll!Microsoft::ReactNative::UIManager::createView::__l2::<lambda_1>::operator()() Line 579 C++
Microsoft.ReactNative.dll!Mso::Details::FunctionObjectWrapper<`Microsoft::ReactNative::UIManager::createView'::`2'::<lambda_1>,void>::Invoke() Line 166 C++
Microsoft.ReactNative.dll!Mso::ManualResetEvent::Set() Line 73 C++
[External Code]
Microsoft.ReactNative.dll!Mso::React::MessageDispatchQueue::tryFunc(const std::function<void __stdcall(void)> & func) Line 126 C++
[Inline Frame] Microsoft.ReactNative.dll!Mso::React::MessageDispatchQueue::runOnQueue::__l2::<lambda_1>::operator()() Line 34 C++
Microsoft.ReactNative.dll!Mso::Details::FunctionObjectWrapper<`Mso::React::MessageDispatchQueue::runOnQueue'::`2'::<lambda_1>,void>::Invoke() Line 166 C++
Microsoft.ReactNative.dll!Mso::QueueService::InvokeTask(Mso::Functor<void __stdcall(void)> && task, std::optional<std::chrono::time_point<std::chrono::steady_clock,std::chrono::duration<__int64,std::ratio<1,1000000000>>>> endTime) Line 206 C++
Microsoft.ReactNative.dll!Mso::TaskDispatcherHandler::Invoke() Line 173 C++
[External Code]
Expected behaviour:
The Video component should clear the previous source and stop playback, rather than crash.
Reproducible sample code:
<Video
source={null}
style={{width:'100%', height:'100%'}}
resizeMode={'contain'}
onError={onError}
/>
Steps to reproduce
- Set the
sourceprop to a local/hosted video. - Change the
sourceprop tonull. - Observe the app crashing on Windows.
Reproduction repository
No response
react-native-video version
6.0.0-alpha.6
react-native version
0.72.3
react-native-nitro-modules version
No response
Platforms
Windows
OS version
Windows 10
Device
Real device
Architecture
No response
Expo
No response
Last working version
No response
Media / source type
No response