2015-11-12 26 views
7

tvOSの場合、ユーザーがリモートでスワイプしたときに表示されるメニューで、他のムービーアプリで「字幕、オーディオ&情報」、タブ付きタブ?tvos AVPlayerViewControllerスワイプダウンメニューの字幕タブを表示する方法

以下

は私のコードです:ユーザーがオフにしたり、字幕をオンに切り替えることができるように

AVMutableMetadataItem *titleMetadataItem = [[AVMutableMetadataItem alloc] init]; 
titleMetadataItem.locale = NSLocale.currentLocale; 
titleMetadataItem.key = AVMetadataCommonKeyTitle; 
titleMetadataItem.keySpace = AVMetadataKeySpaceCommon; 
titleMetadataItem.value = @"The Title"; 

NSArray *externalMetadata = [[NSArray alloc] initWithObjects:titleMetadataItem, nil]; 

_player.player.currentItem.externalMetadata = externalMetadata; 

誰かが私がAVPlayerViewControllerのスワイプダウンメニューのボタンを作成する方法を教えていただけますか?私はsrt filesをビデオに埋め込んでいません。代わりに私は別のsubtitle parserを持っていて、それをラベルに表示します。私はテキストで表示する情報セクションを得ることができましたが、ボタンを追加する方法はありますか?

または ビデオに字幕オプションを追加する方法はありますか? これは動作しません: _player.requiresFullSubtitles = YES;

ありがとう!

+0

Jenel。あなたはこの問題を解決しましたか?それを解決する方法を教えていただけますか?実際には、字幕を配置するカスタムボタンを追加したいと思います。 –

+0

これはちょっとしたハックですが、ボタンを含むカスタムビューを作成し、そのボタンを表示するときに切り替えてください。 –

答えて

0

AVPlayerViewControllerは、HLSストリームに埋め込まれている場合にのみ字幕を読み込みます。これは、スワイプダウンメニューに「字幕」タブを表示する唯一の方法です。

ACHLSCaptioningServer(https://github.com/acotilla91/ACHLSCaptioningServer)と呼ばれるHLS(m3u8)ストリームにVTT字幕を動的に追加するユーティリティを構築しました。

注:SRTファイルにのみアクセスできる場合は、SRTをVTTに変換する方法を見つける必要があります。

使い方:

NSURL *origStreamURL = your_original_stream-url; 
NSURL *vttFileURL = your_vtt_file_url; 

NSURL *streamURL = [[ACHLSCaptioningServer sharedInstance] getCaptionedHLSStreamFromStream:origStreamURL vttURL:vttFileURL]; 

// 
// play stream 
// 

AVURLAsset *videoAsset = [[AVURLAsset alloc] initWithURL:streamURL options:nil]; 

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:videoAsset]; 

AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem]; 

AVPlayerViewController *avPlayerController = [[AVPlayerViewController alloc] initWithNibName:nil bundle:nil]; 
[avPlayerController setPlayer:player]; 
[avPlayerController.view setFrame:self.view.frame]; 
[self addChildViewController:avPlayerController]; 
[self.view addSubview:avPlayerController.view]; 
[avPlayerController didMoveToParentViewController:self]; 
+0

ありがとう!私はSRTファイルをVTTに変換することができる方法を知っていますか? –

+1

これはあなたにアイデアを与えることができますhttps://github.com/nwoltman/srt-to-vtt-converter – BobC

関連する問題