Можно ли контролировать громкость AVMIDIPlayer

Я хотел бы использовать AVMIDIPlayer для воспроизведения многоканального MIDI-файла в игре в качестве фоновой музыки, но я хочу иметь возможность затемнять фоновую музыку, когда игра заканчивается. К сожалению, AVMIDIPlayer не имеет параметра громкости, как у AVAudioPlayer. Есть ли способ, которым я могу контролировать громкость AVMIDIPlayer? (Изменение общего объема не очень приемлемо)

Единственное другое решение, которое я вижу, - это выяснить, как идентифицировать дорожки в MIDI-файле, создать мультиинструментальный AUGraph и добавить микшер в конце. Я не смог выкопать какие-либо мультиинструментальные примеры CoreMIDI, и это выглядит довольно устрашающе.

1 ответ

Используйте MusicSequence для воспроизведения низкоуровневого основного аудио AUGraph, затем воспроизведите последовательность с MusicPlayer. В AUGraph вы можете управлять узлом микшера.

Это входит в мучительные детали.

Другие вопросы по тегам