python audiotools 从内存打开

0 投票
1 回答
791 浏览
提问于 2025-04-17 16:51
import urllib2
import audiotools

file = urllib2.urlopen('http://test.com/1.mp3')
audio = audiotools.open( file ) # <- error

我可以把内存中的文件(不是硬盘上的)给audiotools吗?或者有没有办法直接从网址加载mp3文件到audiotools?不需要先把它保存到硬盘上。

1 个回答

1

这似乎是audiotools库的一个限制,而且解决起来并不简单。比如说,看看MP3Audio这个类(https://github.com/tuffy/python-audio-tools/blob/master/audiotools/mp3.py)。在这个库里,文件名会经过好几层传递下去。所以,文件名必须是真正的文件名(也就是说,必须能用open()打开的那种)。

如果你非常急需解决方案,唯一想到的办法就是创建一个不依赖于硬盘的文件。例如,/dev/shm是许多Linux系统上的一个挂载点,它不指向真实的硬盘,而是指向内存。所以你可以把音频文件写到/dev/shm/foo.mp3,然后告诉audiotools去打开这个文件。

撰写回答