Как ждать, пока видео YouTube не будет встроено в рамку pyqt5 - PullRequest
0 голосов
/ 20 июня 2019

Я делаю медиаплеер с pyqt5, vlc для python и pafy, и я пытаюсь получить самое высокое разрешение для видео на YouTube, но pafy дает мне низкое разрешение для видео с включенным аудио и видео с высоким разрешениемаудио, поэтому я попытался создать два экземпляра vlc и попытался запустить их одновременно.Иногда встраивание видео занимает слишком много времени и начинается аудио.Есть ли какое-то решение подождать, пока видео не будет встроено и сделать так, чтобы видео запускалось одновременно со звуком.Или вы знаете способ получения потоковых ссылок YouTube, как это делает pafy с высоким разрешением и аудио?

############These are parts from code############
self.instance = vlc.Instance()
self.mediaplayer = self.instance.media_player_new()
self.mediaplayer2 = self.instance.media_player_new()
self.videoframe = QFrame()

def OnYT(self):
    url = "https://www.youtube.com/watch?v=7LnBvuzjpr4" #example
    video = pafy.new(url)
    best1 = video.getbestvideo()
    best2 = video.getbestaudio() 
    self.mediaplayer.set_mrl(best1.url)
    self.mediaplayer2.set_mrl(best2.url)

    if sys.platform.startswith('linux'):
        self.mediaplayer.set_xwindow(self.videoframe.winId())
    elif sys.platform == "win32":
        self.mediaplayer.set_hwnd(self.videoframe.winId())
    elif sys.platform == "darwin":
        self.mediaplayer.set_nsobject(int(self.videoframe.winId()))


    self.mediaplayer.play()
    self.mediaplayer2.play()
...