2016-08-12 1 views
3

Можно ли включить субтитры из приложения Google Cast отправителя? Я применил Google Cast в своем приложении и hls потоковая передача работает на Chrome Cast. Существует трек субтитров, включенный в файл hls, но субтитры не отображаются. Нет файлов .vtt, доступных для видео, и поэтому я не могу реализовать MediaTrack для отправки URL-адреса субтитров в приложение-получатель. Мне было интересно, можно ли включить субтитры в потоке hls из приложения-отправителя или мне нужно сделать для него настраиваемое приложение-получатель?Как включить субтитры в файле hls из приложения Google Cast отправителя

я создаю MediaInfo объект, который отправляется в приемник приложения следующим образом (стандарт)

private MediaInfo buildMediaInfo() { 
     MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE); 

    movieMetadata.putString(MediaMetadata.KEY_TITLE, mTitle + " (" + mProdYear + ")"); 
    movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, mFilmType); 
    movieMetadata.addImage(new WebImage(Uri.parse(mImageUrl))); 

    return new MediaInfo.Builder(mVideoUrl.toString()) 
      .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED) 
      .setContentType("videos/mp4") 
      .setMetadata(movieMetadata) 
      //enable subtitles on hls streaming?? 
      .build(); 
} 

ответ

2

Вы не упоминаете, что приемник вы используете. В приемнике Default/Styled HLS (адаптивные потоки в целом) обрабатываются библиотекой Media Player. Если он видит поддерживаемые треки, эта информация будет отправляться на подключенные устройства в обновлениях состояния. Затем приложения-отправители могут узнать о наличии дополнительных треков (и связанных с ними треков), а затем включить или отключить их. Например, если вы используете CCL, это будет обрабатываться автоматически (на стороне отправителя): чтобы увидеть это в действии, захватите CastVideos-android-v2 (который использует CCL) и у вас есть два телефона, подключение к приемнику и запуск один из первых трех фильмов (первые три имеют закрытые титры), и перейдите на страницу полного экрана управления листами и включите закрытую подпись и выберите текстовую дорожку. Затем подключите второй телефон к тому же ресиверу, и вы увидите, что он синхронизируется с тем, что воспроизводится на ресивере, и если вы войдете в полноэкранный контроллер второго телефона, вы увидите, что он знает о закрытых титров и какой трек включен.