我有一个带有多个音频类型的 AVAssetTracks 的 AVURLAsset。我希望能够允许用户通过触摸按钮在这些不同的音轨之间切换。它正在打开和关闭第一首曲目的音量,但当音量设置为 1.0 时听不到其他曲目。
这是用于调整音轨音量的代码(发送方是一个 UIButton,其标签设置为 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];
我是否需要做一些事情才能使所需的曲目成为活跃的曲目?