Я играю видео в AVPlayer, и теперь мне нужно отключить звук во время воспроизведения.Подскажите пожалуйста, как это сделать в объективе С.
Спасибо, Суреш
Начиная с iOS7, вы можете установить для свойства AVPlayer isMuted значение true.
isMuted
true
В Objective C свойство называется muted.
muted
Ссылка: https://developer.apple.com/documentation/avfoundation/avplayer/1387544-ismuted
Это должно видеть вас через ...
AVURLAsset *asset = [[avPlayer currentItem] asset]; NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio]; // Mute all the audio tracks NSMutableArray *allAudioParams = [NSMutableArray array]; for (AVAssetTrack *track in audioTracks) { AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters]; [audioInputParams setVolume:0.0 atTime:kCMTimeZero]; [audioInputParams setTrackID:[track trackID]]; [allAudioParams addObject:audioInputParams]; } AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix]; [audioZeroMix setInputParameters:allAudioParams]; [[avPlayer currentItem] setAudioMix:audioZeroMix];
SWIFT 2.0 и SWIFT 3.0 (по состоянию на 5 июля 2017 г.)
Для тех из вас, кто интересуется Swift, это просто:
self.avPlayer.muted = true
Самый простой способ для OBJECTIVE-C:
self.avPlayer.muted = true;
player.isMuted = true не работает для меня.
player.isMuted = true
В моем случае видео постоянно отключено. Поэтому я использовал приведенный ниже код для достижения этой цели.
self.player.volume = 0.0
Для Swift 4 выше, чтобы отключить AVPlayer видео
self.player.isMuted = true
Вам нужно установить muted false, когда видео воспроизводит статус.
добавить слушателя:
[itemPlayer addObserver:self forKeyPath:kStatusKey options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew context:@"AVPlayerStatus"];
код:
-(void)observeValueForKeyPath:(NSString *)path ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (context == @"AVPlayerStatus") { AVPlayerStatus status = [[change objectForKey:NSKeyValueChangeNewKey] integerValue]; switch (status) { case AVPlayerStatusReadyToPlay: { if (isMuted) { layerPlayer.player.muted = true; } } default: break; } } }