问题描述
我正在尝试将 MDProgressbar 绑定到我的视频进程的视频合并,我正在使用 moviepy 库来做到这一点。 目的是指示我的视频合并文件的合并进度。 我想用它来了解我的应用程序的运行进度,但是当我运行文件时,整个程序将冻结并且进度条根本不会移动。 任何帮助将不胜感激。
下面是我的python文件:
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen
from kivy.core.window import Window
from kivymd.uix.filemanager import MDFileManager
from kivymd.toast import toast
from moviepy.editor import VideoFileClip,concatenate_videoclips,CompositeVideoClip
Window.size = (350,600)
class KudosApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Light"
#self.theme_cls.accent_palette = "Red"
return Builder.load_file("Merge.kv")
def Kfile(self):
self.file_manager = MDFileManager(
exit_manager= self.exit_manager,select_path = self.select_path,)
self.file_manager.show('/')
self.file_manager.ext = [".mp4",".avi"]
def merge2(self):
word = self.root.ids.field1.text
word2 = self.root.ids.field2.text
clip1 = VideoFileClip(word)
clip2 = VideoFileClip(word2)
clip = concatenate_videoclips([clip1,clip2])
clip = clip.write_videofile("Kivy.mp4",logger= None)
self.root.ids.my_progress.value = clip
clip += 1
self.root.ids.my_progress.value = clip
def file_manager_open(self):
self.file_manager.show('/') # output manager to the screen
self.manager_open = True
def select_path(self,path):
'''It will be called when you click on the file name or the catalog selection button.
:type path: str;
:param path: path to the selected directory or file;
'''
self.exit_manager()
if self.root.ids.field1.text == '':
self.root.ids.field1.text = path
else:
self.root.ids.field2.text = path
toast(path)
def exit_manager(self,*args):
'''Called when the user reaches the root of the directory tree.'''
self.manager_open = False
self.file_manager.close()
KudosApp().run()
下面还有 my.kv 文件
Screen:
canvas.before:
Color:
rgba: (1,1,1)
Rectangle:
pos: self.pos
size: self.size
MDRaisedButton:
id: Button1
text: 'browse file 1'
pos_hint: {'center_x': 0.5,'center_y': 0.8}
font_size: 20
line_color: 0,1
md_bg_color: 0,1
on_press: app.Kfile()
MDTextField:
id: field1
pos_hint: {'center_x': .5,'center_y': .7}
size_hint_x: None
width: "200dp"
hint_text: "filepath"
MDRaisedButton:
id: Button2
text: 'browse file 2'
pos_hint: {'center_x': 0.5,'center_y': 0.5}
font_size: 20
line_color: 0,1
on_press: app.Kfile()
MDTextField:
id: field2
pos_hint: {'center_x': .5,'center_y': .4}
size_hint_x: None
width: "200dp"
hint_text: "filepath"
MDRaisedButton:
id: Button3
text: 'Merge'
pos_hint: {'center_x': 0.5,'center_y': 0.2}
font_size: 20
line_color: 0,1
md_bg_color: 1,1
on_press: app.merge()
MDBoxLayout:
MDProgressBar:
id: my_progress
value: 0
min:0
max: 100
pos_hint:{'center_x': 0.5,'center_y': 0.1}
size_hint_x: 0.8
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)