Отключение звука HTTP Live Stream в AVPlayer

Я пытался решить эту проблему в течение добрых 48 часов и ничего не придумал. У меня есть 2 объекта AVPlayer, воспроизводящих разные прямые трансляции http. Очевидно, я не хочу, чтобы они оба воспроизводили звук одновременно, поэтому мне нужен способ отключить звук одного из видео.

Apple предлагает это для отключения звуковой дорожки, воспроизводимой в AVPlayer...

NSMutableArray *allAudioParams = [NSMutableArray array];
for (AVPlayerItemTrack *track in [_playerItem tracks]) {
    if ([track.assetTrack.mediaType isEqualToString:AVMediaTypeAudio]) {
        AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
        [audioInputParams setVolume:0.0 atTime:CMTimeMakeWithSeconds(0,1)];
        [audioInputParams setTrackID:[track.assetTrack trackID]];
        [allAudioParams addObject:audioInputParams];
        // Added to what Apple Suggested
        [track setEnabled:NO];
    }
}

AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
[_playerItem setAudioMix:audioZeroMix];

Когда это не сработало (после многих итераций ), я нашел включенное свойство AVPlayerItemTrack и попытался установить для него значение NO. Тоже ничего. Это даже не регистрируется как действие, потому что, когда я пробую NSLog (@"%x",track.enabled ), он по-прежнему отображается как 1.

Я в растерянности и не могу придумать другой части документации, которую я мог бы прочитать и -перечитать, чтобы получить хороший ответ. Если кто-то там может помочь, это было бы здорово.

*Обновление:Я связался с Apple, и, по словам команды AVFoundation, невозможно отключить звук или отключить дорожку видео HLS. Я лично считаю, что это ошибка, поэтому я отправил отчет об ошибке (. Вы должны сделать то же самое, чтобы сообщить Apple, что это проблема ). Вы также можете попробуйте отправить запрос на улучшение функции через их страницу обратной связи.

5
задан Steve E 21 July 2012 в 20:21
поделиться