随笔分类 - DirectX相关
DirectX编程:C#中利用Socket实现网络语音通信[初级版本]
摘要:现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall、快门等等。它们提供的功能除了网络上的语音通话外,还可以与固定电话、手机等通话。在本篇中主要介绍利用C#实现语音通信的基本方法。但是目前只实现了网络上语音传输的基本功能,而且比较粗糙,没有采用什么算法来优化,所以大家千万不要期望过高。我写这篇的目的除了记录自己的经历之外,更希望有高手能给出改进的意见或算法。
阅读全文
DirectX编程:[初级]C#中利用DirectSound播放WAV格式声音[最少只要4句话]
摘要:网上已经有很多朋友介绍过如何在C#中利用DirectSound来播放声音。今天自己试了下,发现真得很简单,对于初学者来说最简单不过了。只需要短短几句代码。其中关键的只要4句左右代码就OK了。
阅读全文
DirectX编程:[初级]C# 中利用 DirectSound 录音
摘要:介绍C#中,如何利用DirectSound录制声音。
阅读全文
波形捕捉:(9)写入到WAV文件
摘要:WAV文件为资源交换文件格式(RIFF),包括若干数量的命名块,其中包含头信息(如声音采样格式)或数据(如样本本身)。Win 32 API提供了打开关闭FIFF文件、查找块等函数。这些函数的名字都以“mmio”开头。
阅读全文
波形捕捉:(8)使用“捕捉缓冲区”
摘要:捕捉一个声音包括以下步骤:1.通过调用 IDirectSoundCaptureBuffer8::Start 方法启动缓冲区。正规来说,你应该设置 DSCBSTART_LOOPING 作为dwFlags参数,这样这个缓冲区将持续运行而不是当到达缓冲区末尾后就停止。从输入设备上获取的音频数据从缓冲区起始处开始填充。
阅读全文
波形捕捉:(7)“捕捉缓冲区”特效
摘要:在 Windows XP 中,有两种作为内核实现方式的“捕捉缓冲区”特效是可行的:
·回声消除(AEC)
·降噪
阅读全文
波形捕捉:(6)“捕捉缓冲区”通知
摘要: 想要定期的将数据从“捕捉缓冲区”复制出来,你的应用程序必须知道什么时候这个读指针(读指针的位置就是可以安全读取数据的最高位置)到达缓冲区中特定的位置。获取这个信息的一个办法是通过 IDirectSoundCaptureBuffer8::GetCurrentPosition 方法轮询读指针的位置。另一种更有效的办法是使用通知(notification)。使用 IDirectSoundNotify8::SetNotificationPositions 方法,你可以在缓冲区中设置任何数目的点,在这些点上会触发事件。你不能在缓冲区正在使用的时候设置它。
阅读全文
波形捕捉:(5)“捕捉缓冲区”信息
摘要:你可以使用 IDirectSoundCaptureBuffer8::GetCaps 方法获取"捕捉缓冲区"的大小。在使用 DSCBCAPS 结构体做为参数传递前,确保已经对该结构体的dwSize成员进行了初始化。
阅读全文
波形捕捉:(4)创建一个“捕捉缓冲区”
摘要:调用 IDirectSoundCapture8::CreateCaptureBuffer 方法创建一个捕捉缓冲区。
该方法的其中一个参数是一个 DSCBUFFERDESC 结构体,该结构体描述了你想得到的缓冲区的特性。该结构体的最后一个成员是一个WAVEFORMATEX 结构体。这个结构体必须用具体的WAV格式来初始化。
阅读全文
波形捕捉:(3)"捕捉设备"性能
摘要:调用IDirectSoundCapture8::GetCaps方法来获取捕捉设备的性能。这个方法的参数是一个指向DSCCAPS结构体的指针。就如同其它结构体一样,你在传递这个参数之前必须初始化dwSize成员。
阅读全文
波形捕捉:(2)创建捕捉设备对象
摘要:你可以通过调用DirectSoundCaptureCreate8或DirectSoundFullDuplexCreate8 函数来创建一个捕捉设备对象。这两个函数都获取一个指向IDirectSoundCapture8 接口的指针。
阅读全文
波形捕捉:(1)枚举"捕捉设备"
摘要:如果你的应用程序只是单纯得通过用户首选设备用来捕捉声音,那就没有必要来枚举可用的设备。当你通过调用 DirectSoundCaptureCreate8 或DirectSoundFullDuplexCreate8 方法来创建一个设备对象时,你可以声明一个默认设备。更多信息,请查看Creating the Capture Device Object。
阅读全文
Capturing Waveforms【译】
摘要:“DirectSound” 做为另一种诸如“waveInOpen方法”的Windows多媒体操作,可以被用来捕捉声音。它除了支持ACE(回声消除)功能外,在Windows多媒体操作性能上没有什么优势。
DirectSound捕捉设备对象(对应 IDirectSoundCapture8 接口),用来查询声音捕捉设备的性能并且建立缓冲区用来存储来自输入源的声音数据。这些数据可以按照PCM脉码调制方式捕捉或者其它压缩方式捕捉。
阅读全文