如何播放Spotify的音乐流

问题描述:

首先,我是新来的音频节目,所以大家多多包涵。如何播放Spotify的音乐流

我尝试播放S​​potify的音乐n音讯或BASS.Net或任何其他.NET音频库。

据我知道,libspotify提供音乐的原始PCM数据。 what is the sample rate of spotify stream (libspotify)?

来自spotify文档: 样本以整数形式提供,请参见sp_audioformat。一个帧由与通道相同数量的采样组成。即交错在样本水平上。

当我尝试播放一首歌曲,Spotify的使回调以8192字节的缓冲区

渠道= 2

SAMPLE_RATE = 44100

num_frames = 2048

我需要一点点帮助将这些信息转换成NAudio条款。

我也曾尝试用Spotify的到Bass.Net样品(BASSPlayer.cs)。但我还没有听到我的发言者留言。 我试图播放与NAudio和Bass.NET的mp3歌曲,这工作正常,所以扬声器音量是好的。 https://github.com/Alxandr/SpotiFire/blob/master/SpotiFire.Server/BASSPlayer.cs

没有与n音讯突破。这是我想出来的,通过使用试错法。我不知道这是计算从采样率/通道的参数的正确方法...

但正在播放的歌曲:-)

IWavePlayer waveOutDevice = new WaveOut(); 

using (var pcmStream = new FileStream(PcmFile, FileMode.Open)) 
{ 
    const int songDuration = 264000; 
    const int sampleRate = 44100; 
    const int channels = 2; 
    var waveFormat = WaveFormat.CreateCustomFormat(WaveFormatEncoding.Pcm, sampleRate * channels, 1, sampleRate * 2 * channels, channels, 16); 
    var waveStream = new RawSourceWaveStream(pcmStream, waveFormat); 

    waveOutDevice.Init(waveStream); 
    waveOutDevice.Play(); 
    Thread.Sleep(songDuration); 
    waveOutDevice.Stop(); 
    waveStream.Close(); 
    waveOutDevice.Dispose(); 
} 
+1

我知道这是一个老帖子。但是,什么是PcmFile? – 2015-01-03 23:49:35