我正在使用 libspotify 检索音乐以使用某些音频库播放。Spotify 音乐应为原始 16 位、44100hz、立体声 LPCM。我一直在尝试用 NAudio 播放音乐,但不幸的是它不是立体声的。
来自 spotify 文档:样本以整数形式提供,请参阅 sp_audioformat。一帧由与通道数相同的样本数组成。即交错是在样本级别。
以下代码从文件中播放单声道歌曲。该文件是 Spotify 音乐数据的副本。
有人可以指导我寻求立体声解决方案。它可以是 .NET 中的任何音频库。
using (var waveOutDevice = new WaveOut())
{
using (var pcmStream = new FileStream(PcmFile, FileMode.Open))
{
WaveStream waveStream = null;
try
{
const int sampleRate = 44100;
const int channels = 2;
var waveFormat = WaveFormat.CreateCustomFormat(WaveFormatEncoding.Pcm, sampleRate * channels, 1, sampleRate*2*channels, channels, 16);
waveStream = new RawSourceWaveStream(pcmStream, waveFormat);
waveOutDevice.Init(waveStream);
waveOutDevice.Play();
Thread.Sleep(5000); //Listen to 5 secs of music
}
finally
{
waveOutDevice.Stop();
if (waveStream != null) waveStream.Close();
}
}
}
CreateCustomFormat 的签名是公共静态 NAudio.Wave.WaveFormat CreateCustomFormat(NAudio.Wave.WaveFormatEncoding tag, int sampleRate, int channels, int averageBytesPerSecond, int blockAlign, int bitsPerSample)