Как показать видео на виджете Jupyter на ноутбуке Jupyter - PullRequest
0 голосов
/ 19 ноября 2018

Предположим, у меня есть папка с 4 видеофайлами (названными как "movie1.mp4", "movie2.mp4" и т. Д.)

Я хочу использовать ipywidgets, чтобы позволить пользователю контролировать, какое видео он желаетувидеть.Как это:

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]);

Это не работает.но простой вызов

from IPython.display import HTML

HTML("""<video width="100" height="100" controls><source src="movie1.mp4" type="video/mp4"></video>""")

работает

Есть ли какая-то магия питона, которую мне нужно вызвать?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы на самом деле не отображаете результат. Jupyter автоматически пытается отобразить результат последней строки кода в ячейке, поэтому ваш HTML-код отображается при выполнении этого вручную, но если вы вызываете его программно или ваш HTML-код не в последней строке, вам необходимо вручную наберите display() в вашем HTML.

Кроме того, вы не указали параметр правильно. Имя параметра в функции должно совпадать с тем, что вы вводите 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]);
...