Python WX.MediaCtrl Черный Переход Между Видео

#python #transition #wxwidgets

Вопрос:

Я пишу код wx.Python, который воспроизводит видео при нажатии кнопки (работает). Если нажата другая кнопка, то воспроизводится другое видео (работает).

Однако во время загрузки второго видео на экране остается 2(иш) секунды черного экрана. Есть ли способ, чтобы он немедленно загружался и воспроизводился вместо перехода на черный экран?

         def onTestClick(self, media):
    #array = 2

    #if already playing, button press, next vid becomes 0, preload next vid, delay 1.6sec, play.
    self.vidqueue = ["", ""]
    self.vidqueue [0] = "Null"
    self.vidqueue [1] = media

    if self.vidqueue[0] == "Null":
        self.vidqueue [0] = self.vidqueue [1]
        print (self.vidqueue[0])
        
    
    self.testMedia = wx.media.MediaCtrl(self, size = (500, 300), style=wx.SIMPLE_BORDER, szBackend = wx.media.MEDIABACKEND_WMP10)
    self.testMedia.Load(self.vidqueue [0])
    self.testMedia.Bind(wx.media.EVT_MEDIA_LOADED, self.play)
    self.testMedia.Bind(wx.media.EVT_MEDIA_FINISHED, self.quit)

    self.Bind(wx.EVT_BUTTON, self.addVid1, addBtn1)
    self.Bind(wx.EVT_BUTTON, self.addVid2, addBtn2)

def buttonPressed1(self, event):
    file1 = filePathList[0]
    self.refTop.onTestClick(file1)
    
def buttonPressed2(self, event):
    file2 = filePathList[1]
    self.refTop.onTestClick(file2)  

def play(self, event):
    self.testMedia.Play()
    self.vidqueue [0] = "Null"

def quit(self, event):
    self.testMedia.Destroy()
 

Комментарии:

1. вы можете попробовать создать 2 wxMediaCtrl, скрыть второй и вызвать нагрузку на обоих. А затем Показывать/скрывать их, когда пользователь нажимает кнопку.