Baseflow / ExoPlayerXamarin

Xamarin bindings library for the Google ExoPlayer library

Home Page:https://baseflow.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Subtitles/Closed captioning doesn't seem to be operational.

Ashetyn-tegna opened this issue Β· comments

πŸ› Bug Report

Subtitles don't seem to be working. I'm using HLS, but the OnCues method never seems to be firing for the player.

Expected behavior

Exoplayer should fire OnCues method when a listener is allocated. The m3u8 file i'm ingesting has been verified to contain closed captioning data.

Reproduction steps

Initialize the exoplayer

private void InitializePlayer(bool playWhenReady)
{
    _exoListener = new CustomExoListener(_vidContent);
    DefaultTrackSelector trackSelector = new DefaultTrackSelector(this);
    trackSelector.SetParameters(trackSelector.BuildUponParameters().SetRendererDisabled(C.TrackTypeText, false));
    DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);

    var exoPlayerView = new SimpleExoPlayer.Builder(this, renderersFactory).SetTrackSelector(trackSelector).Build();

    var uri = Android.Net.Uri.Parse(_vidContent.MediaUrl);
    _fullscreenPlayerView.Player = exoPlayerView;
    IHttpDataSourceFactory httpDataSourceFactory = new DefaultHttpDataSourceFactory(Util.GetUserAgent(ApplicationContext, AppInfo.Name));
    IMediaSource mediaSource = new HlsMediaSource.Factory(httpDataSourceFactory).SetAllowChunklessPreparation(true).CreateMediaSource(uri);

    // Prepare the player with the source.
    exoPlayerView.Prepare(mediaSource);
    exoPlayerView.PlayWhenReady = playWhenReady;
    exoPlayerView.AddTextOutput(_exoListener);
}

The listener for the exoplayer:

public class CustomExoListener : Java.Lang.Object, ITextOutput
{
    public void OnCues(IList<Cue> cues)
    {
        //This method is never hit
        System.Diagnostics.Debug.WriteLine($"OnCues: {cues}");
    }
}

Configuration

Version: 2.11.8

Platform:

  • πŸ“± iOS
  • [x ] πŸ€– Android
  • 🏁 WPF
  • 🌎 UWP
  • 🍎 MacOS
  • πŸ“Ί tvOS
  • πŸ’ Xamarin.Forms