2012-07-12 113 views
2

首先,我是新來的音頻節目,所以大家多多包涵。如何播放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

回答

2

沒有與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