繁体   English   中英

使用Python流式传输音频(无GStreamer)

[英]Streaming audio using Python (without GStreamer)

我正在开发一个涉及从我的网络服务器传输.OGG(或.mp3)文件的项目。 我不想下载整个文件然后播放它,有没有办法在纯Python中做到这一点(没有GStreamer - 希望能让它真正跨平台)? 有没有办法使用urllib一次下载文件块并将其加载到PyGame中以进行实际的音频播放?

谢谢!

我想你的服务器支持Range请求 您可以通过标题Range询问服务器,包括所需范围的起始字节和结束字节:

import urllib2

req = urllib2.Request(url)
req.headers['Range'] = 'bytes=%s-%s' % (startByte, endByte)
f = urllib2.urlopen(req)

f.read()

您可以实现文件对象,并始终从服务器下载所需的文件块。 几乎每个库都接受一个文件对象作为输入。

由于网络延迟,它可能会很慢。 您需要下载更大的文件块,在单独的线程中预加载文件等。换句话说,您需要自己实现流式客户端逻辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM