首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyObjC -带NSSound的流媒体音乐

PyObjC -带NSSound的流媒体音乐
EN

Stack Overflow用户
提问于 2013-11-23 11:50:22
回答 2查看 627关注 0票数 0

我试着用Python+PyObjC制作一个简单的音乐流应用程序,然后跟着这个博客

代码语言:javascript
复制
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()

但它失败了

代码语言:javascript
复制
>>> sound.play()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: cannot access attribute 'play' of NIL 'NSSound' object

为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-23 13:56:49

这是因为AppKit中的AppKit对象提供了一种在应用程序中播放、AIFF和WAV声音文件的方法,而不是Shoutcast streams。请参阅:http://nodebox.net/code/index.php/PyObjC

我很快就试图找到一个现有的Python模块来做您想做的事情,但是似乎没有。然而,有很多用Python实现的应用程序,您可以对它们进行分析,找出它们是如何实现的。例如:https://pypi.python.org/pypi/DeeFuzzer

我能为您找到的最好的选择是如何使用python捕获mp3流?,它谈到了捕获,这是一种用于本地播放的流。

票数 1
EN

Stack Overflow用户

发布于 2013-11-23 16:26:44

添加到@William的答案中,initWithContentsOfURL_byReference_返回零,这意味着一个创建声音的错误发生了。在这种情况下,我们知道它是因为URL应该指向NSSound理解的有效文件(AIFF、WAVE、NeXT、SD2、AU和MP3)。

即使NSSound在这种情况下工作,它也必须在播放之前下载整个文件;正如@William所指出的那样,这并不适用于流。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20161933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档