我尝试使用Python+PyObjC制作一个简单的音乐流应用程序,如下所示this blog
import Foundation
from AppKit import NSSound
sound = NSSound.alloc()
url = Foundation.NSURL.URLWithString_("http://206.217.213.235:8050/")
sound.initWithContentsOfURL_byReference_(url, True)
sound.play()
但它失败了
^{pr2}$为什么?在
添加到@williamdenman的答案
initWithContentsOfURL_byReference_
返回nil,这意味着在创建声音时发生了错误。在本例中,我们知道它是因为URL应该指向NSSound
能够理解的有效文件(AIFF、WAVE、NeXT、SD2、AU和MP3)。在即使
NSSound
在这个实例中有效,它也必须在回放之前下载整个文件;正如@williamdenman指出的那样,这不适用于流。在这是因为AppKit中的NSSound对象提供了一种在Mac应用程序中播放AIFF和WAV sound文件的方法,而不应该强制播放流文件。参见:http://nodebox.net/code/index.php/PyObjC
我很快就试图找到一个现有的Python模块来做您想做的事情,但它似乎不存在。然而,有很多应用程序是用Python实现的,您可以分析它们是如何做到这一点的。例如:https://pypi.python.org/pypi/DeeFuzzer
我能为您找到的最好的选择是How do I capture an mp3 stream with python,它讨论了如何捕获流以进行本地播放。在
相关问题 更多 >
编程相关推荐