自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿的专栏

C#开发者经验记录

  • 博客(31)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 C# 解决动态调用WebService内存泄露的问题

目录一、问题原因二、问题处理一、问题原因最近项目中用到了动态调用WebService的代码,网上给出的代码WebServiceHelper的代码,如下,此代码存在内存泄露,执行一次,程序会涨大概0.2MB的内存,最后导致程序出现OutOfMemory的错误,为什么会出现内存泄露呢?原因在于CompilerResults类动态编译一次就会增加内存,只有程序退出时才能释放,因此,只要减少动态编译的次数即可解决内存一直增长的问题。#region InvokeWebService

2022-03-30 11:54:52 1005 2

原创 C# 异步操作Task类使用(二)

一、多线程同步何为线程同步,其实就是数据串行操作,当前当前的资源在没有操作完毕之前,不允许其他的线程对同一资源进行操作。即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,互斥量就是其中一种。在C#中使用互斥量 Mutex即可进行线程同步。using System; using System.Threading;class MutexSample{

2022-02-07 21:57:28 583 1

原创 C# 异步操作Task类使用(一)

目录一、Task类介绍1、Task创建2、Task异步方法运行3、Task异步方法释放二、Task更新UI线程1、在更新UI线程的控件时需要使用异步委托进行操做2、关闭线程错误异常提示在C/S编程中Task和Thread是异步操作必不可少的类,作用:为了提高用户操作程序的体验,防止UI线程的卡顿,其实多线程就相当于2个人同时干活。例如:我们在访问局域网内WebService服务时,如果网络通讯不通或不顺畅时,在不使用线程或异步方法更新就会造成主线程卡顿,在网络操作超时之.

2022-01-27 23:16:39 3272 1

原创 C# 使用串口分析SAM协议,读取身份证信息

最近做了个项目,使用Linux Arm主板终端机器,这个终端的一项功能是使用身份证读卡器读取人员的身份证号,初次解除Linux系统,经过

2022-01-24 20:07:27 1866 1

原创 C# 调用USB摄像头

C#调用USB摄像头使用AForge类库进行开发1、AForge安装

2022-01-15 23:13:27 920 1

原创 C# 在Windows系统下使用蓝牙进行数据通讯

1、蓝牙介绍蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。蓝牙作为一种小范围无线连接技术,能在设备间实现方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信,因此它是实现无线个域网通信的主流技术之一。与其他网络相连接可以带来更广泛的应用。是一种尖端的开放式无线通信,能够让各种数码设备无线沟通,是无线网络传输技术的一种,原本用来取代红外线通信。2、蓝牙在项目中应用最近一个项目中要求采集设

2022-01-11 13:07:19 4380 3

原创 C# 使用DirectX.DirectSound播放语音

最近在做项目时,需要进行音频文件的即时播放,并且要求同时播放多条语音,之前C#程序中语音播放一直使用System.Media类库的SoundPlayer类进行播放,但是这个播放类有个弊端,就是在播放时不能同时播放2条语音,经过查找资料DirectX.DirectSound可同时播放2条语音。DirectX.DirectSound的特点1、可同时播放多条语音2、可分左右声道进行播放3、可随时释放正在播放的语音此组件处理流程:1、创建播放线程 public void

2022-01-08 22:10:00 2372 1

原创 C# 提示:无法加载 DLL“XXX.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

今天再调试程序时发现程序再笔记本上运行正常,然而拷贝到客户主机上之后出现了(System.DllNotFoundException: 无法加载 DLL“msc.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。)的问题,经过再三调试,1、确认CPU平台为x86,正常2、dll的路径,正常经过再三的排除,发现是msc.dll的一个依赖库缺少了。通过以下的方法进行C++依赖库查看:1、打开vs目录下的控制台命令行2、输入在命令行中输入命令:dump.

2022-01-07 16:41:37 18145 3

原创 C# SQLite库使用

SQLite,是一款轻型的数据库,是遵守的ACID关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标嵌入式是的,而且已经在很多中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等...

2022-01-05 21:41:24 1880 3

原创 C# FastReport.Net使用

对于管理类的程序在从数据库获取到数据集之后,可能就需要进行报告单的打印,C#中FastReport.Net类库封装了报告单的设计与打印,下面介绍FastReport.Net使用

2022-01-03 19:36:38 6197 3

原创 C# 正则表达式判断

在编写C#程序时,对格式和类型进行转换时就需要使用正则表达式判断,转换前的格式是否满足转换的的需要。正则表达式用的最多的判断:1、IsNumber是否数字,通过正则表达式来验证是否为数字 public static bool IsNumber(string strNumber) { Regex objNotNumberPattern = new Regex("[^0-9.-]"); Regex objTwoDotPa

2022-01-02 23:36:20 1924 1

原创 C# Log4Net 日志库应用

开发一款应用程序,必不可少的就需要进行日志记录,在C#下使用Log4Net进行日志记录Log4Net使用步骤:1、NuGet程序包下载,首先右击工程,单击“管理NuGet程序包”,在收缩框输入“log4net”安装相应类库。2、在工程的Assembly Info.cs 中增加 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] ,这行作用为了封装类库

2022-01-01 22:44:27 941

原创 C# 串口SerialPort控件

串口对于工控领域应用较为广泛

2021-12-31 22:57:50 4700

原创 C# MQTT 应用介绍

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。 特点:1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序的耦合2、对负载内容屏蔽的消息传输3、使用TCP/IP提供网络连接MQTT分为服务端和客户端,服务端Broker,所有设备

2021-12-30 23:07:01 9361 1

原创 C# AppSettings使用

C# AppConfig 读写

2021-12-29 13:11:17 4910

原创 C#+mono 在Linux Arm下访问CAN设备

mono可以使C#程序运行在Linux下,使用C#调用Linux下CAN设备也是可行的,C#可以跨平台调用so库1、使用C封装CAN通讯并编译#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <net/if.h>#include <sys/ioctl.h>#include <sys/socke

2021-12-28 20:43:31 1211 1

原创 海康摄像头YUV420P格式图片缩放

上面文章说过了YUV格式拼接,拼接的数据就需要提前对图像进行缩放的功能海康摄像头获取到了图像数据解码后,分辨率随着设想头的不同,会造成YUV格式图片分辨率不同,就需要对图片进行缩放,YUV的缩放就用到LibYuv.dll动态库,动态库下提供个Scale方法,此方法为C#的导入方法 [DllImport(_path, SetLastError = true, CallingConvention = CallingConvention.Cdecl)] public sta

2021-12-26 21:15:57 2400 1

原创 海康摄像头合码

海康摄像头的视频通过H.264解码后,转换为YUV420P格式后就可以对YUV数据进行拼接,YUV的格式分为YUV444,YUV422,YUV420,格式见下图,通过此图可以看出,YUV420的压缩比较高,经常使用YUV420格式进行图像处理。YUV420的格式也分为以下4中,其中区别在于UV的排列方式不同YUV420P进行拼接可分为横向拼接和纵向拼接下面是测试过的C#包含了横向纵向拼接代码,通过源YUV图像,绘制到目的YUV图像的便宜位置的方法 ///...

2021-12-25 22:59:07 2088 1

原创 海康摄像头PS流分离

可以分离出音频和视频帧数据 /// <summary> /// Determines whether [is i frame] [the specified buf]. /// </summary> /// <param name="buf">The buf.</param> /// <returns><c>true</c> if [is .

2021-12-24 23:00:52 586

原创 海康摄像头视频解码

海康视频解码YUV420p格式

2021-12-23 22:57:08 4642 2

原创 优化的境界

2021-12-22 19:12:51 53

原创 海康摄像头音视频转换

海康摄像头回调获取到的音频编码格式为音频界面设置的“音频编码”,主流的编码为:1、G711alaw 2、G711ulaw 3、AAC视频类型必须选择“符合流”海康6开头的视频服务器不包含音频配置选项,通过设备说明书能得出,此类设备音频编码为默认的G711ulaw格式。如果建立推送服务时,不包含相应的编码器源,就需要进行转码g711a、g711u、pcm可以相互转换,转换文件:G711a、G711u、pcm转换程序-编解码文档类资源-CSDN下载如果需要转换aac编码就需要..

2021-12-19 22:31:52 2052

原创 G711与Pcm互转

记录711a转换pcm

2021-12-18 13:52:30 2582

原创 触摸屏幕签字实现,免汉王等设备SDK对接

屏签软件原理介绍,免去对接不同厂家签批屏的烦恼了

2021-12-17 22:50:33 832

原创 RTSPServer实现多路推送封装

同时创建50个live通道进行推送,只需要创建50个session,通过session_id[]列表进行访问即可,创建方法如下代码:1、启动服务器 try { std::string suffix = "live"; std::string ip = "127.0.0.1"; std::string port = std::to_string(nPort); //std::string rtsp_url = "rtsp://" + ip + ":" + port + "/.

2021-12-16 22:28:06 908

原创 海康摄像头音频编码获取

画面合成中,需要音频数据推送(Pusher),经过大量测试发现,海康摄像头分为2种:1、视频服务器类,音频编码格式为G711U,在海康客户端软件中不能配置2、摄像头类,音频编码包含G711A,G711U,AAC等常用编码由于懒,所以放弃配置,推送的音频格式设定为G711U模式。如何高效的获取到海康音频帧数据呢?海康SDK提供了回调方法启动摄像头预览后,只需判断dwPacketType为10的数据即为音频帧数据,使用图送器推送到Rtsp服务端即可。...

2021-12-13 22:09:19 9892

原创 H.264编码器使用

进行H.264编码,C++中比较好用库为libx264,此库封装了H.264编码功能,编码的功能分为几步1、初始化H.264编码器,指定输入源YUV的格式,m_x264_param中主要配置流尺寸,码率,帧率,等参数,图片输入源设定YUV格式,一般YUV420格式居多,节省存储空间,设置H.264流的尺寸需要和YUV图片尺寸一致。 注意此参数需要设置为1,m_x264_param.b_repeat_headers = 1;由于每帧都需要带帧头 m_hx264 = x264_encod...

2021-12-13 21:52:23 1702

原创 HpSocket HttpEasyServer 二次封装

HpSocket HttpEasyServer 二次封装

2021-12-07 23:09:07 416

原创 HpSocket HttpEasyClient 二次封装

最近在C#上写HTTP服务,发现HpSocket这个控件下的

2021-12-07 22:49:19 767

原创 RTSPServer开源库测试

前2年搞过一个C#版RTSPServer项目,原项目中使用EasyIPCamera,这个项目目前已经改名为EasyRTSPServer,提供了一套完整的视频推送方案,这个项目提供的是vs C++的代码,当时问过授权需要money,还有附带条件就是只保证C++代码可用,由于本人不太熟悉VS下的C++,因此未付费,使用免费的库用C#对接C++进行视频流推送功能。最近在网上发现RtspServer完全免费的推送库,试着测试了以下,发现与这个公司的库调用流程极为相近,因此把C++2次封装库修改了以下,碰到了几个

2021-12-04 22:22:33 1281

原创 opengl学习

opengl中文学习http://learnopengl-cn.readthedocs.io/zh/latest/

2020-05-29 22:55:23 88

VSPD6.9.zip

虚拟串口工具,VSPD6.9

2021-12-31

G711a、G711u、pcm转换程序

G711a、G711u、pcm转换程序,可相互转换

2021-12-19

Eo.Webrowser C#许可版

Eo.Webrowser 比Webrowser好用

2021-12-15

YUV数据查看工具,加载时需要设置YUV格式和分辨率大小

yuv查看工具

2021-12-13

SimpleHttpServer.zip

中控ID700人证一体机第三方http服务端,C#开发的控制台程序,代码可直接运行 中控ID700人证一体机第三方http服务端,C#开发的控制台程序,代码可直接运行

2020-05-29

交通jt808.zip

vs2012C++封装了jt808协议,数据协议包的拼写和发送内容拼写

2019-10-19

HCAACEncoder.rar

海康摄sdk分解海康ps流获取视频和音频帧,写入mp4文件

2019-10-18

android 语音顺序播放

android 语音顺序同步播放,使用Android Studio

2015-07-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除