Possiedo un set AVURLA con più AVAssetTracks di tipo audio. Vorrei poter consentire all'utente di passare da una traccia audio diversa toccando un pulsante. Sta funzionando per accendere e spegnere il volume della 1a traccia, ma le altre tracce non si sentono quando il volume è impostato su 1.0.Cambia audio trakcs per AVURLAsset con più AVAssetTracks di tipo audio
Questo è il codice per la regolazione del volume delle tracce (il mittente è un UIButton con tag impostato su index of asset in audioTracks).
AVURLAsset *asset = (AVURLAsset*)[[player currentItem] asset];
NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
NSMutableArray *allAudioParams = [NSMutableArray array];
int i = 0;
NSLog(@"%@", audioTracks);
for (AVAssetTrack *track in audioTracks) {
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
float volume = i == sender.tag ? 1.0 : 0.0;
[audioInputParams setVolume:volume atTime:kCMTimeZero];
[audioInputParams setTrackID:[track trackID]];
[allAudioParams addObject:audioInputParams];
i++;
}
AVMutableAudioMix *audioZeroMix = [AVMutableAudioMix audioMix];
[audioZeroMix setInputParameters:allAudioParams];
[[player currentItem] setAudioMix:audioZeroMix];
Devo fare qualcosa per portare la traccia desiderata ad essere attiva?
Grazie mille! Questo ha aiutato moltissimo! –
Grazie, grazie, grazie! Questo è stato super utile! –