[Interest] QVideoWidget Error: /Library/Caches/com.apple.xbs/Sources/AppleGVA/AppleGVA-10.1.16/Sources/Slices/Driver/AVD_loader.cpp: failed to get a service for display <n>
Byron Formwalt
byron at fastmail.net
Sat Jul 8 07:56:14 CEST 2017
Correction: The following code is necessary to reproduce Problem 2, cited in my original inquiry.
#!/usr/bin/env python3
from PyQt5.QtCore import *
from PyQt5.QtMultimedia import *
from PyQt5.QtMultimediaWidgets import *
from PyQt5.QtWidgets import *
import sys
import os
def handle_error(mp,e):
print("Error!: {} ({})".format(mp.errorString(),e))
def state_changed(mp,s):
if s == QMediaPlayer.StoppedState:
state = "Stopped"
mp.setPosition(0) # Set playback position in ms since the beginning.
mp.play()
elif s == QMediaPlayer.PlayingState:
state = "Playing"
elif s == QMediaPlayer.PausedState:
state = "Paused"
else:
state = "Unknown"
print("Media player state changed to: {} (mp.state() -> {})".format(state,mp.state()))
if __name__ == '__main__':
app = QApplication(sys.argv)
video_path = os.path.join(os.environ['HOME'],'Movies')
video_name = 'test.mp4'
video_pathname = os.path.join(video_path,video_name)
print("Loading Video: {}".format(video_pathname))
layout = QVBoxLayout()
vw = QVideoWidget()
mp = QMediaPlayer()
mp.error.connect(lambda e: handle_error(mp,e))
mp.stateChanged.connect(lambda s: state_changed(mp,s))
mp.setVideoOutput(vw)
mp.setMedia(QMediaContent(QUrl("file://"+video_pathname)))
w = QWidget()
layout = QVBoxLayout()
label = QLabel("HELLO")
label.setAlignment(Qt.AlignVCenter|Qt.AlignHCenter)
layout.addWidget(label)
layout.addWidget(vw)
w.setLayout(layout)
window = QMainWindow()
window.setCentralWidget(w)
window.show()
mp.play()
app.exec_()
> On Jul 7, 2017, at 10:26 PM, Byron Formwalt <byron at fastmail.net> wrote:
>
> Configuration: PyQt 5.9 with Python 3.6.1 on macOS 10.12.5
>
> Problem: I am evaluating PyQt as a means of playing back videos within a UI. I am including a simple Python script that reproduces the following three problems:
>
> 1. When the video plays back it is not scaled to fit the widget. Instead, the pixel ration is set 1:1 and playback is clipped accordingly by the bounds of the QVideoWidget. When the window is resized, the video does get rescaled.
>
> 2. When the window is set to full-screen mode, playback is blocked unless the user moves the mouse into the menubar or exits full screen mode.
>
> 3. The following error appears almost immediately after playback begins: "/Library/Caches/com.apple.xbs/Sources/AppleGVA/AppleGVA-10.1.16/Sources/Slices/Driver/AVD_loader.cpp: failed to get a service for display 4”
>
> Discussion: I am writing to see if other users have experienced this issue, and if so, has anyone discovered a remedy?
>
> Source:
> #!/usr/bin/env python3
>
> from PyQt5.QtCore import *
> from PyQt5.QtMultimedia import *
> from PyQt5.QtMultimediaWidgets import *
> from PyQt5.QtWidgets import *
> import sys
> import os
>
>
> def handle_error(mp,e):
> print("Error!: {} ({})".format(mp.errorString(),e))
>
> def state_changed(mp,s):
> if s == QMediaPlayer.StoppedState:
> state = "Stopped"
> mp.setPosition(0) # Set playback position in ms since the beginning.
> mp.play()
> elif s == QMediaPlayer.PlayingState:
> state = "Playing"
> elif s == QMediaPlayer.PausedState:
> state = "Paused"
> else:
> state = "Unknown"
> print("Media player state changed to: {} (mp.state() -> {})".format(state,mp.state()))
>
>
> if __name__ == '__main__':
> app = QApplication(sys.argv)
>
> video_path = os.path.join(os.environ['HOME'],'Movies')
> video_name = 'test.mp4'
>
> video_pathname = os.path.join(video_path,video_name)
> print("Loading Video: {}".format(video_pathname))
> layout = QVBoxLayout()
>
> vw = QVideoWidget()
> mp = QMediaPlayer()
> mp.error.connect(lambda e: handle_error(mp,e))
> mp.stateChanged.connect(lambda s: state_changed(mp,s))
> mp.setVideoOutput(vw)
> mp.setMedia(QMediaContent(QUrl("file://"+video_pathname)))
>
> window = QMainWindow()
> window.setCentralWidget(vw)
> window.show()
>
> mp.play()
> app.exec_()
> Relevant Output:
> Media player state changed to: Playing (mp.state() -> 1)
> /Library/Caches/com.apple.xbs/Sources/AppleGVA/AppleGVA-10.1.16/Sources/Slices/Driver/AVD_loader.cpp: failed to get a service for display 4
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170707/b3fdce61/attachment.html>
More information about the Interest
mailing list