XNA Mediaplayer.Play () начинает играть в разное время на разных компьютерах? - PullRequest
0 голосов
/ 01 декабря 2019

Я пытаюсь разработать ритмическую игру в Monogame. Ноты не зависят от частоты кадров и работают последовательно на разных компьютерах, а воспроизведение песни - нет. Прямо сейчас у меня это подключено, поэтому spawn of notes и MediaPlayer.Play () не запускаются до тех пор, пока я не нажму клавишу (поэтому он находится вне loadcontent / initialize, как я видел в других решениях). Песня не начинает играть, пока я не нажму клавишу «I» (проверяется в обновлении). Тем не менее, песня, кажется, начинает играть в разное время на разных устройствах. Я опускаю проект как на своем ноутбуке (от батареи), так и на настольном компьютере, и одновременно нажимаю клавишу «I» на обоих компьютерах, и я получаю разные результаты на своем ноутбуке. Иногда это будет на несколько секунд впереди рабочего стола, в других случаях это будет на секунду или две позади (это обычно имеет место). На рабочем столе это выглядит довольно согласованно. Я бы попробовал более десятка раз, и все по-прежнему синхронизируется, но не на моем ноутбуке. Я боюсь, что это то, что работает только на моем компьютере, но не на других.

Я попытался включить fixedTimeStep и установить FPS на 60 (и установить TargetElapsedTime в заголовок окна, гарантируя, что они действительно обаудар 60) и я все еще получаю противоречивые результаты. Я читал из других ответов об использовании PlayPosition из класса MediaPlayer, но это свойство доступно только для чтения, поэтому я не совсем понимаю, как его использовать.

Сначала я думал, что мои заметки просто зависят от фреймаОцените, но после установки FPS и fixedTimeStep, а также поднесения моего ноутбука к настольному монитору они идеально совпадают. Это просто песня не синхронизируется. Я все еще новичок в XNA, но я не смог найти никого, кто бы сообщал о других моментах начала песни, подобных этому. Любая помощь будет принята с благодарностью.

...