Open wangwenx190 opened 6 years ago
QtAV
7ddf6db290eeee97bcbb01736689b3016a3d2b99
Qt
5.11.2
Platform
Win10 10.0.17134.320, MSVC2017 15.8.5
根据SubtitleFilter头文件里注释的描述,setAutoload(true)可以使SubtitleFilter自动加载外部字幕文件,但就算这样设置了,实际上也并没有自动加载,哪怕字幕文件的文件名与视频文件的文件名相同都不行,我使用的是ass格式的字幕文件,并且可以确认已启用libass,QtAV是我自己编译的,qmake时libass check通过了,并且我自己的代码中已经setEngine("LibASS")了,除了不能自动加载外部字幕,内部字幕轨道是可以正常显示的。
而且SubtitleFilter的头文件对自动加载的描述有歧义,注释里说file()函数不为空时可以自动加载,但这个file()函数返回恰恰就是已经加载的字幕文件,都已经加载成功了为什么还需要自动加载?正是file()为空的时候才需要它自动加载啊。
我不知道是您注释写错了,还是这个自动加载的逻辑本身就有问题,希望您检查并确认一下。
自带的examples中Player的自动加载也是同样的问题,就算勾选了自动加载,也并没有实现自动加载的功能。
看了下QtAV中字幕部分的代码,并没有找到与自动加载相关的代码,是我没有找到还是您忘记添加了?
QtAV, Qt version and platform
QtAV
7ddf6db290eeee97bcbb01736689b3016a3d2b99
Qt
5.11.2
Platform
Win10 10.0.17134.320, MSVC2017 15.8.5
Reproduction steps, expected behavior and actual behavior
根据SubtitleFilter头文件里注释的描述,setAutoload(true)可以使SubtitleFilter自动加载外部字幕文件,但就算这样设置了,实际上也并没有自动加载,哪怕字幕文件的文件名与视频文件的文件名相同都不行,我使用的是ass格式的字幕文件,并且可以确认已启用libass,QtAV是我自己编译的,qmake时libass check通过了,并且我自己的代码中已经setEngine("LibASS")了,除了不能自动加载外部字幕,内部字幕轨道是可以正常显示的。
而且SubtitleFilter的头文件对自动加载的描述有歧义,注释里说file()函数不为空时可以自动加载,但这个file()函数返回恰恰就是已经加载的字幕文件,都已经加载成功了为什么还需要自动加载?正是file()为空的时候才需要它自动加载啊。
我不知道是您注释写错了,还是这个自动加载的逻辑本身就有问题,希望您检查并确认一下。