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

使用Python流式传输音频(无GStreamer),第1张

概述我正在开发一个涉及从我的网络服务器传输.OGG(或.mp3)文件的项目.我不想下载整个文件然后播放它,有没有办法在纯 Python中做到这一点(没有GStreamer – 希望能让它真正跨平台)?有没有办法使用urllib一次下载文件块并将其加载到PyGame中以进行实际的音频播放? 谢谢! 我想你的服务器支持Range请求.您可以通过标题Range询问服务器,包括所需范围的起始字节和结束字节: 我正在开发一个涉及从我的网络服务器传输.OGG(或.mp3)文件的项目.我不想下载整个文件然后播放它,有没有办法在纯 Python中做到这一点(没有GStreamer – 希望能让它真正跨平台)?有没有办法使用urllib一次下载文件块并将其加载到PyGame中以进行实际的音频播放?

谢谢!

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

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

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

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

总结

以上是内存溢出为你收集整理的使用Python流式传输音频(无GStreamer)全部内容,希望文章能够帮你解决使用Python流式传输音频(无GStreamer)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1196569.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存