You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6/QMediaPlayer视频播放结束后无法自动循环问题求助

解决PySide6 QMediaPlayer视频播放结束后无法自动循环的问题

你遇到的问题是因为视频播放到EndOfMedia状态时,播放器的播放位置停留在视频末尾,直接调用play()不会自动从头开始。需要先重置播放位置到起始点,再启动播放。

修改你的state_change槽函数如下:

@QtCore.Slot()
def state_change(self, state):
    print("StateChange: ", state)
    if state == QMediaPlayer.MediaStatus.EndOfMedia:
        # 重置播放位置到开头
        self.player.setPosition(0)
        self.player.play()

如果上述方法仍不生效,可以尝试先停止播放器再重置位置并播放:

@QtCore.Slot()
def state_change(self, state):
    print("StateChange: ", state)
    if state == QMediaPlayer.MediaStatus.EndOfMedia:
        self.player.stop()
        self.player.setPosition(0)
        self.player.play()

为什么按钮点击可以正常播放?

因为按钮点击时,播放器处于StoppedState,此时调用play()会自动从起始位置开始播放;而EndOfMedia状态触发时,播放器的位置仍在视频末尾,缺少重置位置的步骤,所以无法重新启动。

内容的提问来源于stack exchange,提问作者Kenneth Østby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 00:45:15