@@ -77,6 +77,16 @@ static internal bool LibVLCLoaded
7777 {
7878 arch = Path . Combine ( ArchitectureNames . MacOS64 , Constants . Lib ) ;
7979 }
80+ else if ( PlatformHelper . IsWindows )
81+ {
82+ arch = RuntimeInformation . ProcessArchitecture switch
83+ {
84+ Architecture . X64 => ArchitectureNames . Win64 ,
85+ Architecture . X86 => ArchitectureNames . Win86 ,
86+ Architecture . Arm64 => ArchitectureNames . WinArm64 ,
87+ _ => arch = PlatformHelper . IsX64BitProcess ? ArchitectureNames . Win64 : ArchitectureNames . Win86
88+ } ;
89+ }
8090 else
8191 {
8292 arch = PlatformHelper . IsX64BitProcess ? ArchitectureNames . Win64 : ArchitectureNames . Win86 ;
@@ -117,6 +127,27 @@ static internal bool LibVLCLoaded
117127
118128 paths . Add ( ( string . Empty , libvlcPath3 ) ) ;
119129
130+ // Add Win64 folders as fallback for WinArm64 to keep compatibility
131+ if ( arch == ArchitectureNames . WinArm64 )
132+ {
133+ var fallbackLibvlcDirPath1 = Path . Combine ( Path . GetDirectoryName ( libvlcAssemblyLocation ) ! ,
134+ Constants . LibrariesRepositoryFolderName , ArchitectureNames . Win64 ) ;
135+
136+ var fallbackLibvlccorePath1 = LibVLCCorePath ( fallbackLibvlcDirPath1 ) ;
137+ var fallbackLibvlcPath1 = LibVLCPath ( fallbackLibvlcDirPath1 ) ;
138+ paths . Add ( ( fallbackLibvlccorePath1 , fallbackLibvlcPath1 ) ) ;
139+
140+ if ( ! string . IsNullOrEmpty ( assemblyLocation ) )
141+ {
142+ var fallbackLibvlcDirPath2 = Path . Combine ( Path . GetDirectoryName ( assemblyLocation ) ! ,
143+ Constants . LibrariesRepositoryFolderName , ArchitectureNames . Win64 ) ;
144+
145+ var fallbackLibvlccorePath2 = LibVLCCorePath ( fallbackLibvlcDirPath2 ) ;
146+ var fallbackLibvlcPath2 = LibVLCPath ( fallbackLibvlcDirPath2 ) ;
147+ paths . Add ( ( fallbackLibvlccorePath2 , fallbackLibvlcPath2 ) ) ;
148+ }
149+ }
150+
120151 if ( PlatformHelper . IsMac )
121152 {
122153 var libvlcPath4 = Path . Combine ( Path . Combine ( Path . GetDirectoryName ( libvlcAssemblyLocation ) ! ,
0 commit comments