x86 32 位支持 Accord.video.FFMPEG

x86 32 bit support for Accord.video.FFMPEG

雅阁版本 3.8.2

我正在使用 Accord,Accord.video,Accord.video.FFMPEG Dll 用于捕获屏幕,我的代码被编译到 ANYCPU,在 64 位机器上一切正常,但我遇到问题下面是 32 位机器的例外情况。

Exception occurred while loading the assemblies Could not load file or assembly 'Accord.Video.FFMPEG.dll' or one of its dependencies.  is not a valid Win32 application. (Exception from HRESULT: 0x800700C1),    at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
   at System.Reflection.Assembly.LoadFile(String path)
   at ProHance.ProbeTray.Program.MPvcUlyJUg(Object  , ResolveEventArgs  )
  1. 将库项目添加到解决方案。

  2. 将 nuget 包 Accord.Video.ffmpeg(或 x64)添加到库项目 (不要更改平台目标,如果您的环境是 x64,请使用 x64 版本否则使用 x86)

  3. 将这些引用的副本本地更改为假协议 ,Accord.Video , Accord.Video.ffmpeg

  4. 复制packages\Accord.Video.FFMPEG.3.8.0\build中的所有文件 + Accord ,Accord.Video , Accord.Video.ffmpeg 到您的输出文件夹 喜欢 bin\ffmpeg

  5. 将这些行放在 Application_Start.

var path = Thread.GetDomain().BaseDirectory + "bin\ffmpeg\";
Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";"+ path);
AppDomain.CurrentDomain.AppendPrivatePath(path);