A partire dal iOS 7, semplicemente c tutti:
myAvPlayer.volume = 0;
In caso contrario, si dovrà utilizzare la soluzione fastidioso setAudioMix
. Sto rilevando il supporto per questo nella mia app come segue:
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
}
Grazie Doug! Stavo cercando questo per un paio d'ore. Per fortuna basta impostare una proprietà su AVPLayer: D – Mapedd
Una risposta perfetta, semplice, bella! –
@doug perché l'hai cambiato in '1.0' - solo un refuso? – CupawnTae