मेरे पास पीईक्यूटी 5 में एक वीडियो प्लेयर है, जब मैं इसे विंडोज मशीन पर चलाता हूं तो यह वीडियो को फ्रेम में ठीक से प्रारूपित करता है लेकिन जब मैं अपने मैक पर एक ही प्रोग्राम चलाता हूं तो यह वीडियो के बाकी हिस्सों को फिट करने और फिट करने के लिए फ्रेम ज़ूम इन करता है? मेरे विचार से। क्या इस मुद्दे को ठीक करने का कोई तरीका है?

वीडियो लोड होने से पहले यह कैसा दिखता है

Mac पर वीडियो लोड होने के बाद यह कैसा दिखता है

खिड़की के लिए कोड:

class VideoWindow(QMainWindow):

    def __init__(self, parent=None):
        super(VideoWindow, self).__init__(parent)
        self.setWindowTitle("PyQt Video Player")
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        videoWidget = QVideoWidget()

        self.playButton = QPushButton()
        self.playButton.setEnabled(False)
        self.playButton.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))

        self.errorLabel = QLabel()
        self.errorLabel.setSizePolicy(QSizePolicy.Preferred,
                                      QSizePolicy.Maximum)

        # Create new action
        openAction = QAction(QIcon('stream.png'), '&Stream', self)
        openAction.setShortcut('Ctrl+O')
        openAction.setStatusTip('Start a Stream')
        openAction.triggered.connect(self.openFile)

        # Create new action
        connectAction = QAction(QIcon('connect.png'), '&Connect', self)
        connectAction.setShortcut('Ctrl+C')
        connectAction.setStatusTip('Connect to a Stream')
        connectAction.triggered.connect(self.openConnectionList)

        # Create exit action
        exitAction = QAction(QIcon('exit.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.exitCall)

        # Create menu bar and add action
        menuBar = self.menuBar()
        menuBar.setNativeMenuBar(False)
        fileMenu = menuBar.addMenu('&File')
        fileMenu.addAction(openAction)
        fileMenu.addAction(connectAction)
        fileMenu.addAction(exitAction)

        # Create a widget for window contents
        wid = QWidget(self)
        self.setCentralWidget(wid)
        layout = QVBoxLayout()
        layout.addWidget(videoWidget)
        layout.addWidget(self.errorLabel)

        # Set widget to contain window contents
        wid.setLayout(layout)

        self.mediaPlayer.setVideoOutput(videoWidget)
        self.mediaPlayer.error.connect(self.handleError)

    def openFile(self):
        fileName, _ = QFileDialog.getOpenFileName(self, "Stream",
                                                  QDir.homePath())

        if fileName != '':
            self.mediaPlayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(fileName)))
            self.mediaPlayer.play()

    def openConnectionList(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = connectionList()
        self.ui.setupUi(self.window)
        self.window.show()

    def exitCall(self):
        sys.exit(app.exec_())

    def handleError(self):
        self.errorLabel.setText("Error: " + self.mediaPlayer.errorString())


    if __name__ == '__main__':
        app = QApplication(sys.argv)
        videoPlayer = QtWidgets.QMainWindow()
        player = VideoWindow()
        player.resize(640, 480)
        player.show()
        sys.exit(app.exec_())

संपादित करें:::: हो रही त्रुटि दिखाने के लिए Youtube वीडियो त्रुटि

0
Striker 3 पद 2018, 20:32

1 उत्तर

सबसे बढ़िया उत्तर

अपना एप्लिकेशन बनाते समय हाई-डीपीआई स्केलिंग को सक्षम करके प्रयास करें:

if __name__ == '__main__': 
    if hasattr(QtCore.Qt, 'AA_EnableHighDpiScaling'):
        PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)

    if hasattr(QtCore.Qt, 'AA_UseHighDpiPixmaps'):
        PyQt5.QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)

    app = QApplication(sys.argv)
    app.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

    videoPlayer = QtWidgets.QMainWindow()
    player = VideoWindow()
    player.resize(640, 480)
    player.show()
    sys.exit(app.exec_())
1
Isma 3 पद 2018, 17:55