UWP - C # Real-time plotagem

  Xmal:

<Grid MinHeight = "600"> 
    <canvas: CanvasAnimatedControl x: Name = "drawWaveformCanvas" Empate = "DrawWaveformCanvas_Draw" clearColor = "LightGray" /> 
</ Grid>

  xmal.cs:

inseguro vazio ProcessFrameOutput (quadro AudioFrame) privada 
{ 
	usando (AudioBuffer tampão = frame.LockBuffer (AudioBufferAccessMode.Write)) 
	utilizando (referência IMemoryBufferReference = buffer.CreateReference ()) 
	{ 
		byte * dataInBytes; 
		capacityInBytes uint; 

		((IMemoryBufferByteAccess) de referência) .GetBuffer (fora dataInBytes, fora capacityInBytes); 

		flutuador * dataInFloat = (float *) dataInBytes; 
		int dataInFloatLength = (int) buffer.Length / sizeof (flutuador); 
		para (int i = 0; i <dataInFloatLength; i ++) 
		{ 
			try 
			{ 
				waveformFloatData.Add (dataInFloat [i] * 200.0f + 300); 
			} 
			Captura 
			{ 

			}  
		}
	}
} 

Void (remetente Microsoft.Graphics.Canvas.UI.Xaml.ICanvasAnimatedControl, Microsoft.Graphics.Canvas.UI.Xaml.CanvasAnimatedDrawEventArgs args) DrawWaveformCanvas_Draw privada 
{ 
	flutuador xaxis = 0.0f; 
	para (int i = 0; i <waveformFloatData.Count; i ++) 
	{ 
		if (i == 0) continue; 
		Vector2 point1 = novo Vector2 (XAxis, waveformFloatData [i - 1]); 
		Vector2 point2 = novo Vector2 (XAxis, waveformFloatData [i]); 
		args.DrawingSession.DrawLine (point1, point2, Colors.Red, 1F); 
		XAxis + = 0.3f; 
	} 
	WaveformFloatData.Clear (); 
}

  Captura de tela:

Acho que você gosta

Origin www.cnblogs.com/darkchii/p/12549703.html
UWP
Recomendado
Clasificación