def __init__(self, width, height, directory, filename, parent=None): super(PlaybackWidget, self).__init__(parent) self.__width, self.__height = width, height self.real_path, _ = os.path.split(os.path.realpath(__file__)) self.directory = directory self.filename = filename self.__is_paused = False self.ui = Ui_PlaybackWidget() self.ui.setupUi(self) self.init_ui() self.show() self.generate_temp_files() self.start_presentation()
class PlaybackWidget(QtGui.QWidget): def __init__(self, width, height, directory, filename, parent=None): super(PlaybackWidget, self).__init__(parent) self.__width, self.__height = width, height self.real_path, _ = os.path.split(os.path.realpath(__file__)) self.directory = directory self.filename = filename self.__is_paused = False self.ui = Ui_PlaybackWidget() self.ui.setupUi(self) self.init_ui() self.show() self.generate_temp_files() self.start_presentation() def init_ui(self): self.resize(self.__width, self.__height) self.ui.webView.resize(self.__width, self.__height) self.move(0,0) self.setMaximumSize(self.size()) def generate_temp_files(self): shutil.rmtree(self.directory + '/.webncl', True) shutil.copytree(self.real_path + '/webncl', self.directory + '/.webncl') self.generate_html_file(self.directory + '/.webncl/index.html') def generate_html_file(self, filename): content = \ '<html>\n\ <head>\n\ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />\n\ <link rel="stylesheet" type="text/css" href="css/webncl.css" />\n\ <script type="text/javascript" src="js/amq_jquery_adapter.js"></script>\n\ <script type="text/javascript" src="js/amq.js"></script>\n\ <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>\n\ <script type="text/javascript" src="js/popcorn.js"></script>\n\ <script type="text/javascript" src="js/lua+parser.min.js"></script>\n\ <script type="text/javascript" src="js/webncl.js"></script>\n\ </head>\n\ <body>\n\ <div id="myPlayerDiv" style="position:relative;width:%dpx;height:%dpx"></div>\n\ <script type="text/javascript" >\n\ myPlayer = new WebNclPlayer("%s","myPlayerDiv");\n\ </script>\n\ </body>\n\ </html>' % (self.__width, self.__height, os.path.join(self.directory, self.filename)) html_file = open(filename, 'w+') html_file.write(content) html_file.close() def start_presentation(self): webView = self.ui.webView settings = webView.settings() settings.setAttribute(settings.LocalContentCanAccessRemoteUrls, True) settings.setAttribute(settings.LocalContentCanAccessFileUrls, True) webView.loadFinished.connect(self.page_loaded) webView.setUrl(QtCore.QUrl(self.directory + '/.webncl/index.html')) self.frame = self.ui.webView.page().mainFrame() def page_loaded(self): document = self.frame.documentElement() element = document.findFirst("#ncl1_video1") print element def closeEvent(self, event): shutil.rmtree(self.directory + '/.webncl', True) event.accept() @QtCore.Slot(str) def key_event(self, button_str): #print button_str if button_str == 'PLAY': if self.__is_paused: self.frame.evaluateJavaScript('myPlayer.resume();') else: self.frame.evaluateJavaScript('myPlayer.start();') elif button_str == 'STOP': self.frame.evaluateJavaScript('myPlayer.stop();') elif button_str == 'PAUSE': self.__is_paused = True self.frame.evaluateJavaScript('myPlayer.pause();') else: self.frame.evaluateJavaScript('myPlayer.keyPress("%s");' % button_str)