首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何播放spotify音乐流

如何播放spotify音乐流
EN

Stack Overflow用户
提问于 2012-07-12 20:50:31
回答 1查看 2.2K关注 0票数 2

首先,我对音频编程是个新手,所以请耐心听我说。

我正在尝试使用NAudio或BASS.Net或任何其他.net音频库播放spotify音乐。

据我所知,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 to Bass.Net示例(BASSPlayer.cs)。但我还没有听到我的演讲者的一个音符。我试着用NAudio和Bass.NET播放了一首MP3歌曲,效果很好,所以扬声器的音量还可以。https://github.com/Alxandr/SpotiFire/blob/master/SpotiFire.Server/BASSPlayer.cs

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-12 21:53:41

NAudio取得了突破性进展。这就是我想出来的,通过使用试错法。我不确定这是否是从sampleRate/channels计算参数的正确方法...

但是这首歌正在播放:-)

代码语言:javascript
复制
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();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11452236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档