class ViewMediaFrame(BasePAFrame): """ фрейм с картинкой """ def __init__(self, *args, **kwargs): BasePAFrame.__init__(self, *args, **kwargs) self.vlc_instance = vlc.Instance() self.vlc_player = self.vlc_instance.media_player_new() self.platform = platform.system().lower() self.media_label = Label(self) def _pa_layout(self): self.media_label.pack() def set_image(self, image, width, height): if not image: self.reset() return image_width, image_height = image.size if image_height > height: percent = height/float(image_height) width = int(image_width * percent) elif image_width > width: percent = width / float(image_width) height = int(image_height * percent) photo_image = ImageTk.PhotoImage( image.resize((width, height), Image.ANTIALIAS)) self.media_label.config(image=photo_image) self.media_label.image = photo_image def set_video(self, video_path): """ проигрывает указанное видео """ self.vlc_player.set_media( self.vlc_instance.media_new(video_path)) if self.platform == 'windows': self.vlc_player.set_hwnd(self.media_label.winfo_id()) else: self.vlc_player.set_xwindow(self.media_label.winfo_id()) # self.vlc_player.play() def reset(self): self.media_label.config(image=None) self.media_label.image = None