当前您所在的位置:首页>新闻中心>行业动态>

AudioInput

发布时间:2018/06/29 浏览量:1936

18.4.3 配置

如果要使AudioInput实例自动将其事件同步到主UI线程,设置ThreadInvoking为真,但请确保AudioInput实例具有有效的父级控件。

ThreadInvoking默认为假,所以如果您在DataGenerated事件处理程序中更新GUI,请不要忘记调用Control.Invoke方法。

如果要使用其他Windows的录制设备而不是默认录像设备,请设置RecordingDevice属性。您可以使用AudioInput的静态方法GetRecordingDevices获取所有可用的录制设备。

可以通过Volume属性来控制音量。有效值为0100,其中0表示静音,100为最大音量。当AudioInput实例启用(即生成样本)时,您也可以设置音量。

如果要使用差异采样率而非默认采样率(44100Hz),请设置SamplesPerSecond属性。在启用AudioInput实例时设置此属性不起作用。

使用单声道音频而非立体声(默认),请将IsStereo设置为假。在启用AudioInput实例时设置此属性不起作用。

如果您更喜欢每个采样8位而不是16位(默认值),请设置BitsPerSample属性8。有效值为816(默认值)。这种限制来自PCM波形。在启用AudioInput实例时设置此属性不起作用。

 

 

18.4.4 启动

启动AudioInput实例时,您可以设置IsInputEnabled属性为真或调用Start方法。当DataGenerated事件为您提供一组新的音频样本时,您可以使用LightningChartUltimate实例渲染它们。

 

 

 

 

18.4.5 停止

若想停止AudioInput实例,设置IsInputEnabled为假或调用RequestStop方法。RequestStop方法不会立即停止。它只会给AudioInput实例发送信号以尽快停止。如果您需要等到一切都停止,那么等待Stopped事件被触发。你需要订阅它。

 

 

 

18.5 用法(WPF)

本章介绍AudioInput类的WPF版本的用法。AudioInputWPF版本工作原理与WinForms版本基本相同。但是,有一些WPF用户需要了解的内容,本章将介绍这些内容。

 

 

18.5.1 创建

在代码隐藏中手动创建一个新的AudioInput实例,或者通过将其从VisualStudio的工具箱拖放到您的窗口、用户控件等上。

如果您不需要显示GUI(即您使用自己的或您的源代码控制AudioInput对象),则使用Arction.WPF.SignalTools命名空间中的AudioInput。这个特定的类派生自FrameworkElement,它的所有属性都是可绑定的。为方便起见,在安装LightningChartUltimate SDK之后,还可以从VisualStudio的工具箱中找到Arction.WPF.SignalTools.AudioInput,以便将其放在Windows、用户控件等上,然后将元素移动到XAML代码所需的位置。必要的XML命名空间将以这种方式自动添加。

AudioInput还有一个现成的GUI。可以从Arction.WPF.SignalTools.GUI命名空间中找到它。您也可以在安装LightningChartUltimate SDK后从VisualStudio的工具箱中找到它。请注意,这只是Arction.WPF.SignalTools.AudioInput类的GUI,但它包含一个Arction.WPF.SignalTools.AudioInput类的实例,您可以通过Input属性访问它。即您不必创建一个新的单独的Arction.WPF.SignalTools.AudioInput实例。

建议设置LicenseKey属性,以便您的AudioInput实例使用显式许可证密钥,而不用试图从Windows注册表中找到一个。请注意,如果您使用试用版/许可证,则可以将LicenseKey属性保留为其默认值。

 

 

 

19.AudioOutput 组件

AudioOutput组件允许用户将System.Double信号数据转换为音频流,然后通过扬声器播放,或发送到声音设备的Line-out接口。

 

 

 

 

19.1属性

平衡- 获取或设置音频播放平衡。有效值介于-100100.-100之间,这意味着音频只能通过左侧扬声器播放。0表示两个扬声器输出音频。100表示该音频仅通过右侧扬声器播放。

BitsPerSample -获取或设置每个样本分配多少比特。支持的数值为816。如果使用其他值,16则会被取代。当IsOutputEnabledfalse值时,是可设置的状态。

IsOutputEnabled -获取或设置此实例的状态(即启动或停止)。设置此属性为true值与调用Start的方法相同,其中false值与调用Stop的方法相同。

IsStereo -获取或设置是使用两个通道(立体声)还是仅使用一个(单声道)。这是可以进行设定的。

IsOutputEnabled的值为false

LicenseKey -以常规或加密格式,获取或设置许可证密钥字符串。

PlaybackDevice -获取或设置当前播放设备。IsOutputEnabled的值为false时可进行设置。

通过将此属性的值设置为NULL,则能够使用Windows的默认播放设备。

SamplesPerSecond -获取或设置采样频率。IsOutputEnabled的值为false时可设置。

音量- 获取或设置音量(0-100)。IsOutputEnabled的值为false时可设置。

 

 

 

20.频谱计算器组件

频谱计算器组件能够在时域和频域之间进行转换。

20-1。源信号数据(顶部)转换为频域(底部)的示例。信号采样频率=300

Hz,因此频率刻度为300/2= 150 Hz。强正弦基线为10Hz10周期/秒)。将100Hz的较小信号作为一种噪音的方式进行添加。在功率谱中能够发现两个尖峰。

我们有以下公共方法供您参考:

•CalculateForwarddouble[] samplesoutdouble []fftData):将时域信号数据转换为频域使用FFTfftData的输出值还包含负值。输入和输出数据数组的长度必须相等。长度是数据的分辨率,从0Hz扩展到采样频率/2,其中输出值间隔相等。

•CalculateForwardfloat[] samplesoutfloat [] fftData):与以前的方法一样,但是仅针对对于单个精度浮点值。

•CalculateBackwarddouble[] fftDataoutdouble [] samples):将频域数据转换为

时域。从FFT数据中获取信号样本,样本计数等于输入fftData的长度值。

•CalculateBackwardfloat[] fftDataoutfloat [] samples:像以前的方法一样,但是是针对单个精度浮点值而言。

•PowerSpectrumdouble[] samplesoutdouble [] fftData):用于计算信号的功率谱数据。与CalculateForward相同,但具有绝对的输出值。

•PowerSpectrumfloat[] samplesoutfloat [] fftData):与以前的方法一样,但是是针对单个精度浮点值而言。

•PowerSpectrumOverlappeddouble[] samplesintfftWindowLengthdoubleoverlapPercentoutdouble[] fftDataoutintprocessedSampleCount):通过移动来计算功率谱。从计算窗口内源信号采样数据,并以重叠的百分比表示。信号数据必须比给定的FFT窗口长。输出FFT数据是fftWindowLength的长度,所以不一定要与源数据的长度相同。输出的数据为绝对值。

•PowerSpectrumOverlappedfloat[] samplesintfftWindowLengthdoubleoverlapPercentoutfloat[] fftDataoutint processedSampleCount

北京哲想软件有限公司