【发布时间】:2021-01-22 19:19:37
【问题描述】:
我想使用 moviepy 库中的 write_audiofile 函数将 mp4 文件转换为 mp3 文件,并使用进度条在 PyQT5 应用程序中显示进度。
当我使用时:
mp4audio.write_audiofile(filename, logger="bar")
它在控制台中显示一个进度条,那么我可以通过某种方式访问该进度变量并使用它来更新 PyQt5 应用程序中的进度条吗?
我也试过这个:
from proglog import ProgressBarLogger
from my_library import my_routine
class MyBarLogger(ProgressBarLogger):
def callback(self, **changes):
# Every time the logger is updated, this function is called with
# the `changes` dictionnary of the form `parameter: new value`.
for (parameter, new_value) in changes.items():
print ('Parameter %s is now %s' % (parameter, value))
logger = MyBarLogger()
my_routine(logger=logger)
但它只在开始和结束时写下消息。不是进展。
Parameter message is now MoviePy - Writing audio in C:/Users/.../file.mp3
Parameter message is now MoviePy - Done.
请问有人知道解决办法吗?
【问题讨论】:
-
看来moviepy使用proglog,所以你可以实现你自己的ProgressBarLogger子类,覆盖它的
callback并使用它的一个实例作为logger参数write_audiofile()。跨度>
标签: python pyqt5 progress-bar moviepy