如何在 python 中更改 vlc 媒体播放器的视频纵横比

How to change video aspect ratio of vlc media player in python

我想知道如何将 python 中的 vlc 媒体播放器的视频宽高比更改为 16:10。请注意,我正在使用 vlc 模块。我的代码如下:

import vlc
class Player():
    def __init__(self):
        self._instance = vlc.Instance(['--video-on-top'])
        self._player = self._instance.media_player_new()
        self._player.set_fullscreen(True)

    def play(self, path):
        media = self._instance.media_new(path)
        self._player.set_media(media)
        self._player.play()

    def stop(self):
        self._player.stop()
p=Player()
p.play('C:\Users\Keshavarz\Desktop\a.mp4')

使用 video_set_aspect_ratio("n:n") 选项,其中 "n:n" 是任何常见的“16:9”、“4:3”等,但也可以是您想要的任何内容,例如“2:5”例如。

您还需要让脚本保持活动状态,我在您的 play 函数中加入了一个简单的循环来做到这一点。

import vlc
import time
class Player():
    def __init__(self):
        self._instance = vlc.Instance(['--video-on-top'])
        self._player = self._instance.media_player_new()
        #self._player.set_fullscreen(True)
        self._player.video_set_aspect_ratio("16:9")

    def play(self, path):
        media = self._instance.media_new(path)
        self._player.set_media(media)
        self._player.play()
        playing = set([1,2,3,4])
        time.sleep(0.1)
        while True:
            state = self._player.get_state()
            if state not in playing:
                break
            time.sleep(1)

    def stop(self):
        self._player.stop()
p=Player()
p.play('C:\Users\Keshavarz\Desktop\a.mp4')