Начиная с прошивкой 7, просто с всего:
myAvPlayer.volume = 0;
В противном случае, вы должны будете использовать раздражающие setAudioMix
решение. Я обнаружение поддержки для этого в моем приложении следующую образом:
if ([mPlayer respondsToSelector:@selector(setVolume:)]) {
mPlayer.volume = 0.0;
} else {
NSArray *audioTracks = mPlayerItem.asset.tracks;
// 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];
[mPlayerItem setAudioMix:audioZeroMix]; // Mute the player item
}
Спасибо Doug! Я искал это пару часов. К счастью, это просто установка одного свойства на AVPLayer: D – Mapedd
Прекрасный, простой, красивый ответ! –
@doug Почему вы изменили это на '1.0' - просто опечатка? – CupawnTae