Можно ли контролировать громкость AVMIDIPlayer
Я хотел бы использовать AVMIDIPlayer для воспроизведения многоканального MIDI-файла в игре в качестве фоновой музыки, но я хочу иметь возможность затемнять фоновую музыку, когда игра заканчивается. К сожалению, AVMIDIPlayer не имеет параметра громкости, как у AVAudioPlayer. Есть ли способ, которым я могу контролировать громкость AVMIDIPlayer? (Изменение общего объема не очень приемлемо)
Единственное другое решение, которое я вижу, - это выяснить, как идентифицировать дорожки в MIDI-файле, создать мультиинструментальный AUGraph и добавить микшер в конце. Я не смог выкопать какие-либо мультиинструментальные примеры CoreMIDI, и это выглядит довольно устрашающе.
1 ответ
Используйте MusicSequence для воспроизведения низкоуровневого основного аудио AUGraph, затем воспроизведите последовательность с MusicPlayer. В AUGraph вы можете управлять узлом микшера.
Это входит в мучительные детали.