我试图在一个Jupyter笔记本单元中嵌入多个IPython.display.Audio
对象,但由于某些原因,只显示最后一个对象。在
这里有一个简单的例子:
import IPython
IPython.display.Audio(url="https://ccrma.stanford.edu/~urinieto/drop/090412-Incendios.mp3")
IPython.display.Audio(url="https://ccrma.stanford.edu/~urinieto/drop/130224-Undertow.mp3")
这只显示一个(第二个)音频对象。理想情况下,我希望将其放入for
循环中,并在单个单元格中显示多个音频对象。在
有什么想法吗?在
注意:我在python2.7.10上运行jupyter4.0.6和ipython4.0.0。在
仅
IPython.display.Audio(...)
命令创建一个“display”对象(在这种特殊情况下,类DisplayObject
的子类Audio
的对象)。在然后,您可以对这样一个对象执行基本操作,该对象绑定到类
DisplayObject
(以及绑定到类Audio
)的特定对象。其中一个操作包括使用IPython.display.display
函数显示它。在因此,您的特定目标将通过以下代码实现:
其他类型的
当你第一次尝试这样做时,有三件事真的让人困惑(我一开始也很困惑):
命令的名称
IPython.display.Audio
,它似乎暗示将显示某些内容;事实并非如此;所有这些多媒体对象统称为“显示”对象,而其中一些对象从未真正“显示”,只是嵌入到DOM树中(例如,
Javascript
对象);事实上,如果您创建这样一个对象而不在其上使用
IPython.display.display
,那么如果它是单元格中最后创建的对象,它将由标准的IPython交互机制自动显示;这是造成混淆的主要原因,因为它让人们认为不需要使用任何特定的函数来显示“显示对象”。相关问题 更多 >
编程相关推荐