コード例 #1
0
ファイル: playlistmodel.py プロジェクト: qt4cpp/Pype_player
    def add(self, url: QUrl, position: int = -1) -> bool:

        if not url.isValid():
            return False

        media_info = MediaInfo.parse(url.toLocalFile())
        track = media_info.tracks[0]
        if track.title is None:
            title = url.fileName()
        else:
            title = track.title

        if track.duration is None:
            duration_str = '--:--'
        else:
            duration = int(float(track.duration) / 1000)
            totalTime = QTime((duration / 3600) % 60, (duration / 60) % 60,
                              (duration % 60), (duration * 1000) % 1000)

            format = 'hh:mm:ss' if duration > 3600 else 'mm:ss'
            duration_str = totalTime.toString(format)

        if position >= self.rowCount() or position < 0:
            position = self.rowCount()

        self.beginInsertRows(QModelIndex(), position, position + 1)

        media_info = {'url': url, 'title': title, 'duration': duration_str}
        self.item_list.insert(position, media_info)

        self.endInsertRows()
        self.rowCount_changed.emit(self.rowCount())
        return True
コード例 #2
0
 def load(self, file_url: QUrl):
     if file_url is None:
         return None
     if file_url.isValid():
         c = QMediaContent(file_url)
         self.player.setMedia(c)
         self.media_loaded.emit(self.playlist.current_title())
         self.enableInterface()
コード例 #3
0
 def set_url(self, url: QUrl):
     if not url.isValid():
         return
     if mediainfo is None:
         return
     media_info = MediaInfo.parse(url.toLocalFile())
     for track in media_info.tracks:
         if track.track_type == 'Audio' or track.track_type == 'Video':
             duration = track.duration / 1000
             print(duration)
             print('{0} | {1:.0f}:{2:.0f}'.format(track.Title, duration / 60, duration % 60))
コード例 #4
0
ファイル: report.py プロジェクト: KwanEsq/mozregression
    def update_content(self, item):
        if not item.data:
            self.clear()
            return

        html = u""
        for k in sorted(item.data):
            v = item.data[k]
            if v is not None:
                html += "<strong>%s</strong>: " % k
                if isinstance(v, str):
                    url = QUrl(v)
                    if url.isValid() and url.scheme():
                        v = '<a href="%s">%s</a>' % (v, v)
                html += "{}<br>".format(v)
        self.setHtml(html)
コード例 #5
0
def validate_url(self, web_contents: str) -> None:
    """
    Check if is a url or HTML
    Check if url is valid

    :param self: QWebEnginePage
    :param web_contents: url or HTML
    :return:
    """
    if "!doctype html" in web_contents.lower():
        self.setHtml(web_contents)
        print("Loading local HTML")
    else:
        url = QUrl(web_contents)
        if url.isValid():
            self.setUrl(web_contents)
            print(f"Loading URL:{url.toString()}")