Можно ли переключать звуковые дорожки в файле mkv в Google Chromecast? - PullRequest
2 голосов
/ 10 апреля 2020

Мне нужно изменить звуковую дорожку с Android. Как упоминалось в официальном акте do c, я пытался добавить треки, используя следующий код:

MediaTrack audio1 = new MediaTrack.Builder(1, MediaTrack.TYPE_AUDIO)
  .setName("Audio 1")
  .setContentId(trackId)
  .setLanguage("en")
  .build();

MediaTrack audio2 = new MediaTrack.Builder(2, MediaTrack.TYPE_AUDIO)
  .setName("Audio 2")
  .setContentId(trackId2)
  .setLanguage("it")
  .build();

List tracks = new ArrayList();
tracks.add(audio1);
tracks.add(audio2);

MediaInfo mediaInfo = MediaInfo.Builder(url)
  .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
  .setContentType(getContentType())
  .setMetadata(getMetadata())
  .setMediaTracks(tracks)
  .build();

Для setContentId Я получил идентификаторы треков, используя ffmpeg и mediainfo, но это не работает. Я также попытался извлечь аудиодорожки и передал URL в аудиофайл в setContentId, но он все еще не работает.

Для изменения текущей дорожки я попытался использовать метод setActiveMediaTracks, но я Вы также пытались изменить трек с кода CAF js:

    playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const audioTracksManager = playerManager.getAudioTracksManager();

    // Get all audio tracks
    const tracks = audioTracksManager.getTracks();

    // Choose the first audio track to be active by specifying its ID
    audioTracksManager.setActiveById(tracks[0].trackId);
  });

У кого-нибудь есть идеи?

...