Zeiger sind in C# verpönt, aber wenn es doch mal sein muss:
Code:
public WaveData GetWaveData()
{
WaveData result = new WaveData();
BassStream vizStream = _controller.PlaybackProcessor.VizStream;
if (vizStream == null)
return result;
fixed(Int16* p = result.Data)
{
IntPtr ptr = (IntPtr)p;
if (_externalState != PlayerState.Active)
return result;
if (BassWasapi.BASS_WASAPI_IsStarted())
{
BassWasapi.BASS_WASAPI_GetData(ptr, 2048);
}
else
{
Bass.BASS_ChannelGetData(vizStream.Handle, ptr, 2048);
}
return result;
}
}
Ist aber ungetestet und ich habe das so noch nicht gemacht.