Изменить метки дорожек в AVPlayerViewController для HLS - PullRequest
0 голосов
/ 02 июля 2019

Я играю поток HLS с AVPlayer и AVPLayerViewController на Xamarin.iOS. Проблема в том, что я не могу изменить названия треков (аудио и субтитры), которые пользователь может выбрать в настройках воспроизведения. Метки, которые я хочу изменить, отмечены красным Например, я хочу, чтобы там были названия на родном языке.

Допустим, я не могу изменить метаданные в потоке, и мне нужно изменить метки трека в плеере. Так я разбираю доступные треки и выбираю английский для сабвуферов и аудио.

AVAsset asset = AVAsset.FromUrl(source);
AVPlayerItem playerItem = new AVPlayerItem(asset);

foreach (string characteristic in this.playerItem.Asset.AvailableMediaCharacteristicsWithMediaSelectionOptions)
{
    AVMediaSelectionGroup group = this.playerItem.Asset.MediaSelectionGroupForMediaCharacteristic(characteristic);
    AVMediaSelectionOption option = group.Options.FirstOrDefault(o => o.Playable && o.ExtendedLanguageTag == "eng");

    if (option is null)
        continue;

    this.playerItem.SelectMediaOption(option, group);
}

Я пытался изменить AVMediaSelectionGroup и AVMediaSelectionOption, но экземпляры в значительной степени имеют свойства только для чтения. Как мне подойти к этой проблеме?

...