python - 播放流式音乐播放器等音频文件

时间:2018-06-12 14:57:17

标签: python pyaudio pydub

所以我想创建一个简单的程序,如使用UDP套接字协议的音乐流播放器。到目前为止,我可以读取mp3文件,将其分成几个字节,并将其连续发送到我的接收器(客户端)。我的问题是我想从服务器接收它时逐个播放mp3文件。任何人都可以告诉我如何做到这一点?我收到后试图播放该部分,但部分之间存在过渡。我想像spotify一样顺利播放。

注意:我不想接收所有部分,加入它们并播放它们。我想要的是在接收它时播放它。非常感谢你的帮助。我很感激

到目前为止我的代码:

我通过此代码

通过UDP发送了拆分文件
with open('test.mp3', 'rb') as infile:
  d = infile.read(65500)
  while d :
    time.sleep(1)
    sent = sock.sendto(d, address)
    d = infile.read(65500)

我通过此代码

收到拆分文件
p = pyaudio.PyAudio()
    stream = p.open(format=pyaudio.paInt16,
                  channels=10,
                  rate=44100,
                  output=True)
  data, server = (sock.recvfrom(65500))
  while data != 'stop':
    stream.write(data)
    data, server = (sock.recvfrom(65500))
  stream.stop_stream()
  stream.close()
  p.terminate()

我已经尝试过这段代码了,我发出了嗡嗡声。

另一种方法是:

while 1:
  data, server = (sock.recvfrom(65500))
  song = AudioSegment.from_file(io.BytesIO(data), format="mp3")
  play(song) #with pydub

这段代码很有效,但是你知道我会分别播放每个部分,所以每个部分之间都有延迟,而且部分歌曲缺失

0 个答案:

没有答案