Mam zestaw AVURLA z wieloma zestawami AVAssettracks typu audio. Chciałbym móc zezwolić użytkownikowi na przełączanie między różnymi ścieżkami dźwiękowymi poprzez dotknięcie przycisku. Pracuje nad włączeniem i wyłączeniem głośności 1. ścieżki, ale inne ścieżki nie są słyszalne, gdy głośność ustawiona jest na 1.0.Przełączanie trakków audio dla zestawu AVURLA z wieloma zestawami AVAssettracks typu audio
Oto kod do regulacji głośności ścieżek (nadawca to UIButton z tagiem ustawionym na indeks zasobu w ścieżkach audio).
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];
Czy muszę coś zrobić, aby wybrany utwór był aktywny?
Dziękuję bardzo! To pomogło ogromnie! –
Dziękuję, dziękuję, dziękuję! To było super pomocne! –