2012-11-05 58 views
0

我們一直在爲基於AVPlayer的視頻播放器添加字幕支持。我們能夠從[self.player.currentItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible]生成的AVMediaSelectionGroup中檢索mediaType「sbtl」的AVMediaSelectionOption對象,並且可以選擇適當的AVMediaSelectionOption在我們的直播流上顯示字幕。這一切工作正常。在iOS 5上禁用字幕會在屏幕上留下最後顯示的字幕文字

我們遇到問題的地方是取消選擇iOS 5.01和iOS 5.1上的AVMediaSelectionOption。

在運行iOS 6的設備上,我們可以使用[self.player.currentItem selectMediaOption:nil inMediaSelectionGroup:self.subtitleSelectionGroup]禁用字幕,並按預期消失。但是在iOS 5.01和iOS 5.1上,字幕停止更新,但顯示的最後一段文字保留在視頻播放器上,直到播放器關閉,按下電源按鈕或應用程序移至背景爲止。

我們已經嘗試過濾掉只有強制字幕的字幕,認爲這可能是問題,但無濟於事。這是操作系統中的錯誤嗎?我們的流式視頻有什麼問題嗎?

感謝您提供任何幫助和指導。

+0

聽起來就像是「大傢伙」一樣工作。在電視上通過廣告時間間隔持續看到「隱藏式字幕」文本行(通常只是部分完成)並不罕見。 –

回答

1

不知道這是否有助於在iOS5中,但在我的視頻流中,我有一個字幕選項和每種語言的強制字幕選項。我改變爲強制字幕選項,它不會顯示任何字幕(只有當你有強制字幕)。 因此,如果您製作的視頻像這樣,並且強制字幕不帶字幕,則可以選擇強制字幕在iOS5中製作技巧。

這裏是我的選擇組選項陣列看起來像一個打印對象:

<__NSArrayM 0x2006d590>(
    <AVMediaSelectionTrackOption: 0x200297a0, mediaType = sbtl, locale = en, title = (null), option ID = 3, associated forced-only option = <AVMediaSelectionTrackOption: 0x2006d600>>, 
    <AVMediaSelectionTrackOption: 0x2006d600, mediaType = sbtl, locale = en, title = (null), option ID = 3, default = YES, forced subtitles only>, 
    <AVMediaSelectionTrackOption: 0x20057210, mediaType = sbtl, locale = zh, title = (null), option ID = 4, associated forced-only option = <AVMediaSelectionTrackOption: 0x20044bc0>>, 
    <AVMediaSelectionTrackOption: 0x20044bc0, mediaType = sbtl, locale = zh, title = (null), option ID = 4, forced subtitles only>, 
    <AVMediaSelectionTrackOption: 0x2002d450, mediaType = sbtl, locale = ce, title = (null), option ID = 5, associated forced-only option = <AVMediaSelectionTrackOption: 0x20028660>>, 
    <AVMediaSelectionTrackOption: 0x20028660, mediaType = sbtl, locale = ce, title = (null), option ID = 5, forced subtitles only> 
    ) 

希望這可以是任何對你有用,因爲沒有可供這個問題很多信息。