假设我有一个包含4个视频文件的文件夹(命名为“ movie1.mp4”,“ movie2.mp4”等)
我想使用ipywidgets让用户控制他希望观看的视频。像这样:
GlobalScope.launch {
writeFileAsync(file, bytes)
}
private suspend fun writeFileAsync(file: File, bytes: ByteArray) {
try {
file.writeBytes(bytes)
} catch (e: Exception) {
throw PersistenceException(e)
}
}
这不起作用。 但只需致电
import ipywidgets as wd
from IPython.display import HTML
def showvideo(i):
HTML("""<video width="100" height="100" controls><source src="movie{}.mp4" type="video/mp4"></video>""".format(i))
wd.interact(showvideo, video_number = [1, 2, 3, 4]);
有效
我需要调用一些Python魔术吗?
答案 0 :(得分:2)
您实际上并没有显示结果。 Jupyter会自动尝试显示单元格中最后一行代码的结果,因此这就是手动执行HTML时显示HTML的原因,但是如果您以编程方式调用它或HTML不在最后一行,则必须在HTML上手动调用display()
。
此外,您没有正确指定参数。函数中的参数名称必须与您提供给interact
的名称匹配。将您的代码更改为此应该可以:
def showvideo(video_number):
display(HTML("""<video width="100" height="100" controls><source src="movie{}.mp4" type="video/mp4"></video>""".format(video_number)))
wd.interact(showvideo, video_number = [1, 2, 3, 4]);