来自Spotify的流媒体音乐的可视化
本文关键字:可视化 音乐 流媒体 来自 Spotify | 更新日期: 2023-09-27 17:55:46
我正在使用C#包装器ohLibSpotify从Spotify流式传输音乐,并使用NAudio播放。现在,我正在尝试为我收到的数据创建频谱可视化。
当我从libspotify获取数据时,会调用以下回调:
public void MusicDeliveryCallback(SpotifySession session, AudioFormat format, IntPtr frames, int num_frames)
{
//handle received music data from spotify for streaming
//format: audio format for streaming
//frames: pointer to the byte-data in storage
var size = num_frames * format.channels * 2;
if (size != 0)
{
_copiedFrames = new byte[size];
Marshal.Copy(frames, _copiedFrames, 0, size); //Copy Pointer Bytes to _copiedFrames
_bufferedWaveProvider.AddSamples(_copiedFrames, 0, size); //adding bytes from _copiedFrames as samples
}
}
是否可以分析我传递给 BufferedWaveProvider 的数据以创建实时可视化?有人可以解释一下吗?
将时域信号(如音频样本)转换为频域信息的标准工具是傅里叶变换。
拿起你选择的快速傅里叶变换库,把它扔到你的数据上;你会得到信号分解成它的组成频率。然后,您可以获取该数据并随心所欲地进行可视化。频谱图特别容易;您只需要绘制每个频率分量的幅度与频率和时间的关系。