Вопросы AVPlayer при потоковой трансляции (iOS) - PullRequest
4 голосов
/ 08 марта 2011

У меня есть вопросы по AVPlayer.

1.Как регулировать громкость звука?

2.Как узнать, перезагружает ли AVPlayer музыку из-за плохого соединения, есть ли у меня какое-то подозрение?

1 Ответ

7 голосов
/ 25 июня 2011

AVPlayer использует системную громкость, поэтому, если вам необходимо предоставить элементы управления для этого, вы можете использовать MPVolumeView, который предоставляет ползунок для регулировки громкости.

Для затухания звука вы можете использовать AVAudioMix.Вот некоторый код:

//given an AVAsset called asset...
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];
id audioMix = [[AVAudioMix alloc] init];
id volumeMixInput = [[AVMutableAudioMixInputParameters alloc] init];

//fade volume from muted to full over a period of 3 seconds
[volumeMixInput setVolumeRampFromStartVolume:0 toEndVolume:1 timeRange:
     CMTimeRangeMake(CMTimeMakeWithSeconds(0, 1), CMTimeMakeWithSeconds(3, 1))];
[volumeMixnput setTrackID:[[asset tracks:objectAtIndex:0] trackID]];

[audioMix setInputParameters:[NSArray arrayWithObject:volumeMixInput]];
[playerItem setAudioMix:audioMix];

Вы также можете резко установить громкость микса в определенный момент времени с помощью:

[volumeMixInput setVolume:.5 atTime:CMTimeMakeWithSeconds(15, 1)];

Надеюсь, это поможет.Этот API определенно не очевиден.Я настоятельно рекомендую посмотреть видео WWDC 10 под названием Discovering AV Foundation .Это отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...