6
오디오 유형이 여러 개인 AVAssetTrack이있는 AVURLAsset이 있습니다. 사용자가 버튼을 터치하여 서로 다른 오디오 트랙간에 전환 할 수있게하고 싶습니다. 첫 번째 트랙의 볼륨을 켜고 끄기 위해 작동하지만 볼륨을 1.0으로 설정하면 다른 트랙이 들리지 않습니다.AVURLAs 용 오디오 트랙을 오디오 유형이 여러 AVAssetTracks로 설정합니다.
다음은 트랙의 볼륨을 조정하는 코드입니다 (발신자는 태그가 audioTracks에서 저작물의 색인으로 설정된 UIButton 임).
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];
원하는 트랙을 활성화하려면 무엇인가해야합니까?
감사합니다. 이것은 대단히 도움이되었습니다! –
고마워요, 고마워요, 고마워요! 이것은 매우 도움이되었다! –