[英]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.