我想知道是否可以使用PyQt5打开/关闭视频字幕。为了启用我添加的字幕
import os
os.environ["QT_GSTREAMER_PLAYBIN_FLAGS"] = str(0x00000017)
在导入QGUI应用程序之前。但我们不能在代码运行时打开/关闭它。有什么办法吗
我可以使用以下命令更改字幕流:
class PlayerHelper(QtCore.QObject):
qmlplayerChanged = QtCore.pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
self.qml_player = None
@QtCore.pyqtProperty(QtCore.QObject, notify=qmlplayerChanged)
def qmlplayer(self):
return self.qmlplayer
@qmlplayer.setter
def qmlplayer(self, player):
self.qml_player = player
self.qmlplayerChanged.emit()
@staticmethod
def get_stream_control(qmlplayer):
mediaObject = qmlplayer.property("mediaObject")
player = sip.cast(mediaObject, QtMultimedia.QMediaPlayer)
control = player.service().requestControl(
"org.qt-project.qt.mediastreamscontrol/5.0"
)
return sip.cast(control, QtMultimedia.QMediaStreamsControl)
@QtCore.pyqtSlot(result=int)
def subTitleCount(self):
if not self.qml_player:
return -1
stream_control = self.get_stream_control(self.qml_player)
count = 0
for i in range(stream_control.streamCount()):
if (
stream_control.streamType(i)
== QtMultimedia.QMediaStreamsControl.SubPictureStream
):
count += 1
return count
@QtCore.pyqtSlot(result=int)
def subTitleActive(self):
if not self.qml_player:
return -1
stream_control = self.get_stream_control(self.qml_player)
count = 0
for i in range(stream_control.streamCount()):
if (
stream_control.streamType(i)
== QtMultimedia.QMediaStreamsControl.SubPictureStream
):
if stream_control.isActive(i):
return count
count += 1
return -1
@QtCore.pyqtSlot(int)
def setSubTitleActive(self, index):
if not self.qml_player:
return
stream_control = self.get_stream_control(self.qml_player)
count = 0
for i in range(stream_control.streamCount()):
if (
stream_control.streamType(i)
== QtMultimedia.QMediaStreamsControl.SubPictureStream
):
if index == count:
stream_control.setActive(i, True)
return
count += 1
@QtCore.pyqtSolt()
def nextTitle(self):
if subTitleActive() == subTitleCount()-1:
setSubTitleActive(0)
else:
setSubTitleActive(subTitleActive+1)
通过运行nextTitle()
,它将更改当前正在播放的字幕
如果无法禁用,是否有任何方法可以将Gstreamer字幕作为动态变化的字符串变量获取
目前没有回答
相关问题 更多 >
编程相关推荐