Jupyter(IPython)Noteb中有多个音频对象

2024-10-01 07:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个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。在


Tags: 对象httpsurlipythondisplay笔记本jupyter音频
1条回答
网友
1楼 · 发布于 2024-10-01 07:30:22

IPython.display.Audio(...)命令创建一个“display”对象(在这种特殊情况下,类DisplayObject的子类Audio的对象)。在

然后,您可以对这样一个对象执行基本操作,该对象绑定到类DisplayObject(以及绑定到类Audio)的特定对象。其中一个操作包括使用IPython.display.display函数显示它。在

因此,您的特定目标将通过以下代码实现:

import IPython
IPython.display.display(IPython.display.Audio(url="https://ccrma.stanford.edu/~urinieto/drop/090412-Incendios.mp3"))
IPython.display.display(IPython.display.Audio(url="https://ccrma.stanford.edu/~urinieto/drop/130224-Undertow.mp3"))

其他类型的

当你第一次尝试这样做时,有三件事真的让人困惑(我一开始也很困惑):

  • 命令的名称IPython.display.Audio,它似乎暗示将显示某些内容;事实并非如此;

  • 所有这些多媒体对象统称为“显示”对象,而其中一些对象从未真正“显示”,只是嵌入到DOM树中(例如,Javascript对象);

  • 事实上,如果您创建这样一个对象而不在其上使用IPython.display.display,那么如果它是单元格中最后创建的对象,它将由标准的IPython交互机制自动显示;这是造成混淆的主要原因,因为它让人们认为不需要使用任何特定的函数来显示“显示对象”。

相关问题 更多 >