Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. Media Player Translucent
Forum Updated to NodeBB v4.3 + New Features

Media Player Translucent

Scheduled Pinned Locked Moved Unsolved Qt for Python
1 Posts 1 Posters 202 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    wuqingjun
    wrote on last edited by
    #1

    I have some confusion when using QtMultimedia to implement a simple player

    0d1f737c-e41e-4bb7-9bef-655c6de6084e-image.png ![alt text](image url)

    setattribute WA_TranslucentBackground player window translucent ???
    4de9335d-c6a9-40d4-81b5-d8675d0f9915-image.png

    mediaPlay code :

    class VideoPlayerWidget(QWidget):
        def __init__(self, parent=None):
            super(VideoPlayerWidget, self).__init__(parent)
    
            self._hide_show_interval = 2000
            self._initUi()
    
        def _initUi(self):
            self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
            self._view = QVideoWidget()
            self._video_control_widget = VideoControlWidget()
    
            lay = QGridLayout()
            lay.addWidget(self._view, 0, 0, 2, 1)
            lay.addWidget(self._video_control_widget, 1, 0, 1, 1)
            lay.setContentsMargins(0, 0, 0, 0)
    
            self.setLayout(lay)
            # Set widget to contain window contents
    
    
            self.mediaPlayer.setVideoOutput(self._view)
            self.mediaPlayer.positionChanged.connect(self._video_control_widget.update_position)
            self.mediaPlayer.durationChanged.connect(self._video_control_widget.update_duration)
            # self.mediaPlayer.error.connect(self.handleError)
    
            self._video_control_widget.played.connect(self.init_play)
            self._video_control_widget.stoped.connect(self.mediaPlayer.stop)
            self._video_control_widget.seeked.connect(self.mediaPlayer.setPosition)
            self._video_control_widget.containsCursor.connect(self._set_remain_control_widget_visible)
    
            self._timer_init()
    
        def loading_media(self, filename):
            mediaContent = QMediaContent(QUrl.fromLocalFile(filename))
            self.mediaPlayer.setMedia(mediaContent)
            self._video_control_widget.setMedia(filename)
            self.init_play()
            return self
    
        def _timer_init(self):
            self._timer = QTimer()
            self._timer.setInterval(self._hide_show_interval)
            self._timer.timeout.connect(self._bottom_widget_toggled)
    
        def _bottom_widget_toggled(self):
            self._timer.stop()
            self._video_control_widget.setVisible(False)
    
        def _timer_start(self):
            self._video_control_widget.setVisible(True)
            self._timer.start()
    
        def enterEvent(self, e):
            self._timer_start()
            return super(VideoPlayerWidget, self).enterEvent(e)
    
        def mouseMoveEvent(self, e):
            if self._timer.isActive():
                self._timer.setInterval(self._hide_show_interval)
            else:
                self._timer_start()
            return super(VideoPlayerWidget, self).mouseMoveEvent(e)
    
        def leaveEvent(self, e):
            self._video_control_widget.setVisible(False)
            return super(VideoPlayerWidget, self).leaveEvent(e)
    
    
    
        def init_play(self):
            if self.mediaPlayer.mediaStatus == QMediaPlayer.NoMedia:
                pass
            elif self.mediaPlayer.state == QMediaPlayer.PlayingState:
                self.mediaPlayer.pause()
            else:
                self.mediaPlayer.play()
    
        def _set_remain_control_widget_visible(self, f):
            if f:
                self._timer.timeout.disconnect()
            else:
                self._timer.timeout.connect(self._bottom_widget_toggled)
    

    I need to turn on the transparent display of the window, how do I need to do it ???

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved