知道缓冲区指针,和大小 怎么读取其数据?

jjcl521 jjcl521 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
其实是海康的DVR的一个录音功能


/// <summary>
/// 音频数据回调函数/语音数据回调函数
/// void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser)
/// 注意
/// 回调参数byAudioFlag=2, pRecvDataBuffer=NULL时,表示语音对讲收发线程退出
/// </summary>
/// <param name="lVoiceComHandle">NET_DVR_StartVoiceCom 的返回值</param>
/// <param name="pRecvDataBuffer">存放数据的缓冲区指针</param>
/// <param name="dwBufSize">缓冲区的大小,为80的整数倍</param>
/// <param name="byAudioFlag">数据类型:0-客户端采集的音频数据;1-设备端发送过来的音频数据</param>
/// <param name="dwUser">输入的用户数据</param>
public delegate void VoiceDataCallBack(int lVoiceComHandle, string pRecvDataBuffer, uint dwBufSize, byte byAudioFlag, uint dwUser);
private void fVoiceDataCallBack(int lVoiceComHandle, string pRecvDataBuffer, uint dwBufSize, byte byAudioFlag, uint dwUser)
{
//在这里面怎么读取缓冲区
}



...全文

相关推荐

QT QSerialPort 封装,阻塞方式发送数据后等待读取缓冲区数据结果,使用QT信号量阻塞,线程中初始化串口和读取数据。

本文将深入探讨如何利用QSerialPort进行串口通信,并且着重讲解如何在阻塞模式下发送数据后等待读取缓冲区的数据结果,以及如何在多线程环境中初始化串口和读取数据。

sunyongsunyong

muduo网络库学习(六)缓冲区Buffer及TcpConnection的读写操作

在tcp的通信过程中,内核其实为tcp维护着一个缓冲区 当调用write/send时,会向内核缓冲区中写入数据,内核和tcp协议栈负责将缓冲区中的数据发送到指定<ip,port>的目标位置。 当有数据到达内核的tcp缓冲区中,如果开启了对套接字可读事件的监听,那么内核会让套接字变为可读状态,从而从poll函数中返回,调用read/recv进行读操作。 但是,内核维护的tcp缓冲区通常都比较小 如果调

一个程序渣渣的小后院

一个c++环形队列缓冲区

它通过在固定大小的内存空间内循环利用来提高内存利用率和降低数据处理的延迟。#### 二、环形缓冲区的数据结构与工作原理1.

zhihua555

环形缓冲区实现原理

其基本原理是提供一个固定大小的存储空间用于数据的暂存,读取和写入操作分别由两个指针控制,读指针和写指针分别追踪下一个可读数据和可写数据的位置。通过这两个指针的移动,实现数据的先进先出(FIFO)操作。

oypl

C语言环形缓冲区

例如,在写入数据时,首先锁定缓冲区,更新写指针并将数据存入,然后解锁;读取时则相反,先锁定,再根据读指针读取数据并更新读指针,最后解锁。这样可以避免数据竞争问题,确保线程安全。

wonderplayer98
评论 1
收藏 已收藏
分享
返回顶部
jjcl521
C# 111,129 成员 642,539 内容