当前位置: 首页 > 面试题库 >

在IPython Notebook中自动播放声音

钱修雅
2023-03-14
问题内容

我经常在IPython笔记本中运行长时间运行的单元。我希望笔记本计算机在单元执行完后自动发出蜂鸣声或播放声音。在iPython笔记本中是否可以执行某些操作,或者可以在可以自动播放声音的单元格的末尾添加一些命令?

如果这有任何区别,我正在使用Chrome。


问题答案:

TL; DR

在笔记本顶部

from IPython.display import Audio
sound_file = './sound/beep.wav'

sound_file 应该指向您计算机上的文件,或者可以从Internet访问。

然后,在长时间运行的单元结束时

<code that takes a long time>

Audio(sound_file, autoplay=True)

此方法使用iPython /
Jupyter较新版本中内置的Audio标签。

旧版本注意

没有音频标签的较旧版本可以使用以下方法。

将其放在单元中并运行它,然后再播放声音:

from IPython.display import HTML
from base64 import b64encode

path_to_audio = "/path/to/snd/my-sound.mp3"
audio_type = "mp3"

sound = open(path_to_audio, "rb").read()
sound_encoded = b64encode(sound)
sound_tag = """
    <audio id="beep" controls src="data:audio/{1};base64,{0}">
    </audio>""".format(sound_encoded, audio_type)

play_beep = """
<script type="text/javascript">
    var audio = document.getElementById("beep");
    audio.play();
</script>
"""

HTML(sound_tag)

在单元结束时,您想发出一点声音:

HTML(play_beep)

这个怎么运作:

它使用iPython的内置openread方法从文件系统读取文件。然后将其编码为base64。然后,它使用ID创建一个音频标签,beep并将base64数据注入其中。最后的设置过程将创建一个小的脚本标签来播放声音。

在支持HTML5音频标签的任何浏览器中,此方法均应适用。

注意:如果您不想在笔记本中显示音频控件,只需controls从名为的变量中删除该属性sound_tag



 类似资料:
  • 问题内容: 这是我用来在我的react应用程序中使用url(this.url)播放声音的代码。当我按下播放按钮时,它给我一个错误 我不确定为什么会这样,因为我没有看到任何未定义的状态。一个;; 状态已经声明。 我是新来的反应者,所以我可能会错过一些非常重要的东西。 请帮忙! 问题答案: 我稍微改进了Jaxx的版本,使其包含一个,以便在音频结束时重置按钮。 ES6类属性语法 挂钩版本(反应16.8+

  • 播放(播放音效/播放录音)

  • 问一下Xamarin.Forms便携里面Xamarin.Forms的音频怎么播放 正如我所知,有依赖服务,我看到了一些示例,只有iOS和Android,但没有Windows Phone 8.1/Windows 8.1和UWP。

  • 我正在学习如何为某些曲目创建媒体播放器的教程...每首歌都按我的要求播放然后停止...我想让整个播放列表播放...那是为了在前一个赛道结束后,下一个赛道自动开始... 多谢...

  • 问题内容: 我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时却听不到任何声音。 这是代码: 我也尝试使用频道,但结果是一样的 问题答案: 您的代码在我的机器上可以正常运行(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您正在使用哪些OS,Python和pygame版本?您是否可以通过其他方式(例如,在Mac的终端上或在Windows控制台上,然

  • 问题内容: 以下代码为什么不播放声音?它为play()返回“ true”,但我听不到任何声音。 如果我改用以下代码,则可以听到声音。 OS X优胜美地10.10.3 Xcode 6.2 问题答案: 问题是,您的AVAudioPlayer是一个 局部变量 。因此,它会立即不复存在-在开始播放之前,更不用说完成播放了。 解决方案:改为将其设置为 属性 ,以使其 持久存在 。