# -*- coding: utf-8 -*-
import wx, wx.media
import sqlite3
import os
import time
class MainFream(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.leftPanel = wx.Panel(self, size=(0,0))
self.media = wx.media.MediaCtrl(self,
#szBackend=wx.media.MEDIABACKEND_GSTREAMER,
szBackend=wx.media.MEDIABACKEND_WMP10,
size=(0,0),
style=wx.SIMPLE_BORDER | wx.ALIGN_CENTER_HORIZONTAL)
#Penael Sizer
self.hBoxSizer = wx.BoxSizer(wx.HORIZONTAL)
self.hBoxSizer.Add(self.leftPanel, 1, wx.EXPAND, 1)
self.hBoxSizer.Add(self.media, 1, wx.EXPAND, 1)
self.SetSizer(self.hBoxSizer)
#Video Image File Folder Serach & Load Play
self.mediaCounter = 0
self.folderSerach = [f for f in os.listdir() if f.endswith(('.wmv','mp4','avi','.jpg'))]
self.media.Load(self.folderSerach[self.mediaCounter])
self.media.Bind(wx.media.EVT_MEDIA_LOADED, self.mediaPlay, self.media)
self.media.Bind(wx.media.EVT_MEDIA_FINISHED, self.mediaLoop, self.media)
def auto(self):
self.TextShow()
wx.CallLater(1000, self.auto) #60min
def mediaPlay(self, event):
self.folderSerach = [x for f in os.listdir() for x in os.path.splitext(f) if x.endswith(('.wmv','mp4','avi','.jpg'))]
for i in self.folderSerach:
if i == '.jpg':
self.media.Play()
time.sleep(10)
print('test1')
else:
self.media.Play()
print('test2')
def mediaLoop(self, evnet):
self.media.Stop()
self.mediaCounter += 1
if self.mediaCounter > len(self.folderSerach) -1: self.mediaCounter = 0
self.folderSerach = [f for f in os.listdir() if f.endswith(('.wmv','mp4','avi','.jpg'))]
self.media.Load(self.folderSerach[self.mediaCounter])
if __name__ == '__main__':
app = wx.App()
fream = MainFream()
fream.Show(True)
app.MainLoop()
jpg、avi、mp4などをフォルダ内で検索して再生するパネルを作成しています。Wxpython wx.mediaビデオと画像の制御質問があります
def mediaPlay()
セクションでは、jpgによって画像ファイルが10秒間表示され、ムービーは再生時間が終了するまで再生されます。
質問は、if = '.jpg'
です。print ('test1')
の文を実行する必要があります。同時に「test2」も表示されます。したがってtime.sleep()
はif or else
ステートメントに適用されます。どうしてこれなの?
Peneal Sizerとは何ですか、どこで入手できますか? –