debugly / ijkplayer

【持续更新】macOS/iOS video player based on ijkplayer, using FFmpeg 5.1, support Metal、hw accel、HDR、ass subtitle effect...
GNU General Public License v2.0
69 stars 14 forks source link

关于内嵌字幕和外挂字幕之间的切换 #13

Closed zdw19840929 closed 2 months ago

zdw19840929 commented 3 months ago

大佬我发现一个问题,就是我这样操作之后字幕的字体大小不对

  1. 先设置一个内嵌字幕,然后设置内嵌字幕的subtitlePreference
    
    self.player?.exchangeSelectedStream(Int32(i))

if var p = self.player?.view.subtitlePreference { p.color = 0xFFFFFF p.ratio = Float(self.subTitleSize) p.bottomMargin = 0.07 self.player?.view.subtitlePreference = p } else { self.player?.view.subtitlePreference = IJKSDLSubtitlePreference.init(ratio: Float(self.subTitleSize), color: 0xFFFFFF, bottomMargin: 0.07) } self.player?.view.setNeedsRefreshCurrentPic()

2.切换成外挂字幕

self.player?.loadThenActiveSubtitle(subtitleURL) if var p = self.player?.view.subtitlePreference { p.color = 0xFFFFFF p.ratio = Float(self.subTitleSize) p.bottomMargin = 0.07 self.player?.view.subtitlePreference = p } else { self.player?.view.subtitlePreference = IJKSDLSubtitlePreference.init(ratio: Float(self.subTitleSize), color: 0xFFFFFF, bottomMargin: 0.07) } self.player?.view.setNeedsRefreshCurrentPic()

3.再切换到内嵌字幕

self.player?.exchangeSelectedStream(Int32(i))

if var p = self.player?.view.subtitlePreference { p.color = 0xFFFFFF p.ratio = Float(self.subTitleSize) p.bottomMargin = 0.07 self.player?.view.subtitlePreference = p } else { self.player?.view.subtitlePreference = IJKSDLSubtitlePreference.init(ratio: Float(self.subTitleSize), color: 0xFFFFFF, bottomMargin: 0.07) } self.player?.view.setNeedsRefreshCurrentPic()



这三步操作之后,字幕的字体大小不对了,变得特别小。
debugly commented 2 months ago

这个问题不再做修复,最近正在开发一套新的字幕挂载-解析-渲染-上传纹理的引擎,跟当前这套实现完全不同了。