SignalReader组件允许从信号源文件中读取数据,并以选定的速率重放录音。SignalReader输出数据流格式与SignalGenerator类似,请参见第1.10章。
SignalReader组件目前支持两种格式,wav和sid。
FileName定义要打开的文件,如“c:\\wavedata \\ audioclip1.wav”
Factor设定输出因子。原始信号样本乘以该值。
OutputInterval类似于SignalGenerator的属性,请参见第17.1节。
当文件终点达到时,IsLooping允许文件读取跳转到文件的开头。
打开文件后,可以使用以下属性来获取文件的信息:
ChannelCount:文件的通道数。
SamplingFrequency:采样频率(Hz)。
FileSize:文件大小(以字节计)。
Length:每个频道的采样计数。所有信号文件格式可能不准确
IsReaderEnabled:状态命令是组件启动和读取数据。如果循环设置为假并且文件终点到达,IsReaderEnabled将更改为false。
调用OpenFile(...)方法提供的文件名。文件名必须有支持格式的扩展名。然后调用Start()方法
signalReader.OpenFile(“C:\\wavedata\\ audioclip1.wav”);
signalReader.Start();
它将开始重放PCM格式的WAV文件。
可以通过调用StopRequest()方法来停止重放。
图17-1SignalReader读取一个wav文件,LightningChartSampleDataSeries绘制信号。光标线用于标记当前读取位置和X轴滚动位置。
AudioInput组件允许用户从Windows的录制设备捕获到System.Double值的信号。这些值可以在LightningChartUltimate上呈现,发送到AudioOutput组件,并保存到文件等...
BitsPerSample——获取或设置每个样本分配多少位。支持的值为8和16。如果使用其他值,则使用16。IsInputEnabled为假时可设置。
IsInputEnabled——获取或设置此实例的状态(即启动或停止它)。将此属性设置为真与调用Start方法相同,其中假与调用Stop方法相同。
IsStereo——获取或设置是使用两个通道(立体声)还是仅使用一个(单声道)。IsInputEnabled为假时可设置。
LicenseKey——以常规或加密格式获取或设置许可证密钥。
RecordingDevice——获取或设置当前录制设备。IsInputEnabled为假时可设置。通过将此属性设置为空,使用Windows的默认记录设备。
SamplesPerSecond——获取或设置采样频率。IsInputEnabled为假时可设置。
ThreadInvoking——获取或设置此实例是否自动将其事件同步到主UI线程,因此无需在访客端调用Control.Invoke方法。
Volume——获取或设置音量(0-100)。IsInputEnabled为假时可设置。
GetRecordingDevices——使用此静态方法获取可用Windows录制设备的列表。
RequestStop——将此AudioInput实例发出信号以停止。退出此方法后,Stop不会立即出现。通过订阅Stopped事件,当所有事情都停止时,用户将会被通知。
Start——Start从选定的录音设备中读取音频。内部线程即将开始时触发Started事件。
DataGenerated——生成一组新的音频数据时发生。可以从作为参数提供的DataGeneratedEventArgs对象读取数据及其第一个样本的时间戳。
Started–音频输入开始时发生。StartedEventArgs对象作为参数被提供,包含三个公共字段:BitsPerSample、ChannelCount和SamplesPerSecond。
Stopped–音频输入停止时发生。
本章介绍了AudioInput类的WinForms版本的用法。WPF版本将在第17.5章中处进行介绍。
通过在源代码中手动创建一个新的AudioInput实例,或者将其从VisualStudio的工具箱拖放到您的表单、用户控件等。
如果您不需要显示GUI(即,您使用自己的或您的源代码控制AudioInput对象),则将Visible属性设置为假。始终建议使用父属性进行设置,以便在处理父控件时,AudioInput实例被自动处置。如果没有父级,那么在完成AudioInput实例后,不要忘记调用Dispose方法。请注意,如果您通过VisualStudio的工具箱创建一个新的AudioInput实例,则Parent将自动设置。
建议设置LicenseKey属性,以便您的AudioInput实例使用显式许可密钥,而不是尝试从Windows注册表中找到一个。请注意,如果您使用试用版/许可证,则可以将LicenseKey属性保留为其默认值。
要从AudioInput实例获取新的样本,您需要至少订阅DataGenerated事件。当DataGenerated事件触发时,您可以从作为参数提供的DataGeneratedEventArgs对象获取新样本和第一个采样时间戳。
如果想知道AudioInput实例何时开始其音频采样任务,您可以订阅Started事件。您可以获取每个样本的位数,是音频单声道还是立体声,并且从作为参数提供的StartedEventArgs对象每秒钟生成多少个样本。
如果您想知道AudioInput实例何时停止,您可以订阅Stopped事件。Stopped事件没有参数,它唯一的目的是告诉用户什么时候停止。