其他学习笔记
1. C# FFmpeg.AutoGen
用这个FFmpeg.AutoGen时出现如下错误
1 System.Runtime.InteropServices.MarshalDirectiveException: 无法封送处理“parameter #2”: 无效的托管/非托管类型组合(String 类型的参数和返回类型必须与 LPStr、LPWStr、LPTStr、BStr、TBStr、VBByRefStr 或 AnsiBStr 成对出现)。 2 在 System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointerInternal(IntPtr ptr, Type t) 3 在 System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr ptr, Type t) 4 在 FFmpeg.AutoGen.Native.FunctionLoader.GetFunctionDelegate[T](IntPtr nativeLibraryHandle, String functionName, Boolean throwOnError) 5 在 FFmpeg.AutoGen.ffmpeg.<>c.<.cctor>b__6_336(AVFormatContext** ps, String url, AVInputFormat* fmt, AVDictionary** options) 6 在 FFmpeg.AutoGen.ffmpeg.avformat_open_input(AVFormatContext** ps, String url, AVInputFormat* fmt, AVDictionary** options) 7 在 IPCTool.FFmpegUtils.Start(ShowBitmap show, String url) 8 在 IPCTool.RTSPPlayer.DeCoding()
这个不是必现的,只在部分win7系统出现过。出现概率也不小。大概的原因是这个FFmpeg封装库,对部分.net版本没有做兼容出现导致的。
我的解决办法是不用FFmpeg.AutoGen的最新版,用4.1.0.3 版本
作者:无脑仔的小明 出处:http://www.cnblogs.com/wunaozai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。有需要沟通的,可以站内私信,文章留言,或者关注“无脑仔的小明”公众号私信我。一定尽力回答。 |