예제 #1
0
 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()
예제 #2
0
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)