python audiotools 从内存打开
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去打开这个文件。