我有一个字节列表,我想将此列表拆分为较小的部分.
var array = new List<byte> {10, 20, 30, 40, 50, 60};
Run Code Online (Sandbox Code Playgroud)
此列表有6个单元格.例如,我想将它分成3个部分,每个部分包含2个字节.
我曾尝试编写一些for循环并使用2D数组来实现我的目的,但我不知道这是一种正确的方法.
byte[,] array2D = new byte[window, lst.Count / window];
var current = 0;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
array2D[i, j] = lst[current++];
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个.wav文件,我正在使用ZedGraph绘制波形.我正在计算每秒的.wav文件的能量,如果能量小于4,我想用不同的颜色绘制样本.我创建了两个PointPairLlist并且LineItem这样做但是在合并这两个列表时存在问题.这是我的代码以及我的图表的显示方式.
LineItem myCurveAudio;
LineItem myCurveAudio2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
while(true)
{
for (int i = 0; i < fmainBuffer.Length; i++)
{
float segmentSquare = fmainBuffer[i] * fmainBuffer[i];
listOfSquaredSegment.Add(segmentSquare);
}
float energy = (float)Math.Sqrt(listOfSquaredSegment.Sum());
if (energy < 4)
{
for (int i = 0; i < read; i += (int)window)
{
list1.Add((float)(count / ((float)read / (float)window)), fmainBuffer[i]);
count++;
}
}
else
{
for (int i = 0; i < read; i …Run Code Online (Sandbox Code Playgroud) 我查看了NAudio类,但看不到将字节数组转换为WAV文件的类.如果没有这样的类,我怎样才能使用NAudio将字节数组转换为WAV文件?
我想将文本作为字节发送到RS232,然后我将这些字节返回到byte[]缓冲区.在获取数据后,我想使用NAudio将它们保存为WAV文件.
我试图使用WaveBuffer课程,但我认为我正在尝试错误的方式.
我正在以编程方式创建多个片段。它们都有不同的布局,并且在片段之间交换后,活动片段的布局会发生变化。
程序启动时FragmentPagerAdapter创建前两个片段。如果我选择最后一个片段(例如第一个到第七个)FragmentPagerAdapter开始创建第七个片段,然后是第六个片段。此时我想使用下面的代码选择当前片段。
`(FragmentMasaDesign) getSupportFragmentManager().getFragments().get
(myViewPager.getCurrentItem());`
Run Code Online (Sandbox Code Playgroud)
myViewPager.getCurrentItem()返回 6。这是真的,因为我选择了第 7 个片段并且它的索引是 6。但是我只有四个片段被创建,它们是 1st-2nd-6th-7th。因此getFragments()方法返回我这四个片段,并且由于返回的值而无法选择当前活动片段myViewPager.getCurrentItem()
有没有办法在应用程序开始时创建所有片段,或者如何在创建其他片段之前获取当前片段?
我是处理wav文件和C#的新手。我的目标是在wavfile波形中实时绘制数据。我的意思是在录制声音(wav)文件时,我想同时绘制其图形。我搜索了一些声音库并决定使用NAudio。(不知道这对我来说是最佳选择。我愿意接受有关选择音频库的任何建议)。但是我不知道使用声音进行实时数据绘图的想法。有人建议使用GDI,但正如我所说,我是新手,我认为有效使用GDI会花费太多时间。如果我必须学习GDI,请分享任何可以帮助像我这样的初学者的文章。实际上,我看起来不知道该从哪里开始。需要指导:))我有一个问题。
NAudio的教程之一,他使用字节数组在Chart中绘制波形。如果您知道wav文件的大小,那很好。但是它的工作速度太慢,对于大于10mb的wav文件,它会给出内存不足异常。下面的代码指的是我的意思。
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Wave File (*.wav)|*.wav;";
if (open.ShowDialog() != DialogResult.OK) return;
chart1.Series.Add("wave");
chart1.Series["wave"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
chart1.Series["wave"].ChartArea = "ChartArea1";
NAudio.Wave.WaveChannel32 wave = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(open.FileName));
byte[] buffer = new byte[426565];
int read;
while (wave.Position < wave.Length)
{
read = wave.Read(buffer, 0, 426565);
for (int i = 0; i < read / 4; i++)
{
chart1.Series["wave"].Points.Add(BitConverter.ToSingle(buffer, i * 4));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以更快地执行此操作?