首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从vlckit中删除字幕?

如何从vlckit中删除字幕?
EN

Stack Overflow用户
提问于 2019-09-15 00:30:59
回答 2查看 283关注 0票数 0

我用swift编写了一个使用vlckit框架的应用程序。我已经设法让字幕工作通过使用

代码语言:javascript
复制
let url = URL(string: "file://Users/lonespeaker/test-subitltle.srt")
mediaPlayer.addPlaybackSlave(url, type: .subtitle, enforce: true)

但是,如果用户在选择一个字幕后想要禁用字幕,我就卡住了。

我试过以下几种方法,但没有成功

代码语言:javascript
复制
let url = URL(string: "")
mediaPlayer.addPlaybackSlave(url, type: .subtitle, enforce: true)

我已经在谷歌上搜索了删除PlaybackSlave的答案,但似乎还没有解决这个问题的API。

以下是我的代码的摘录:

代码语言:javascript
复制
guard let url = URL(string: "file://Users/lonespeaker/test-file.mkv") else { return }
let media = VLCMedia(url: url)
mediaPlayer.media = media

mediaPlayer.delegate = self
mediaPlayer.drawable = self.movieView

mediaPlayer.play()

然后在IBAction中禁用字幕

代码语言:javascript
复制
@IBAction func disableSubtitles(_ sender: Any) {
    let url = URL(string: "")
    mediaPlayer.addPlaybackSlave(url, type: .subtitle, enforce: true)
}

我本以为PlaybackSlave会被新的网址更改/覆盖,因此会禁用字幕。

我还期望API调用禁用播放Slave,但似乎没有这样的调用。

有人能帮上忙吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-10-25 18:11:37

你的方法太复杂了。您可以添加无限数量的播放从机,但此时使用VLCKit确实无法清除这些从机。

但是,VLC将在回放期间显示可用字幕轨道的列表,而不考虑其来源(您无法区分视频内部的字幕和通过输入从站添加的字幕),您可以迭代这些字幕并显示给用户。此外,还有播放器选项来设置您想要显示的字幕曲目ID。这些ID也可以从API中查询(注意,ID可以是0,1,2,...但它是完全合法的201,4022,8444,...,也)。但是,要仅禁用,请将此选项设置为-1。

票数 1
EN

Stack Overflow用户

发布于 2019-10-03 12:39:29

看起来它不是由vlckit公开的,但是libvlc确实提供了libvlc_media_slaves_clear

您应该尝试在本地vlckit fork中添加对它的支持,如果有效,则打开一个拉取请求。其他人可能会感兴趣。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57937372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档