2015-02-03 3 views
1

Я делаю игру, и я заметил, что сохранение всех аудиофайлов в памяти, как правило, не очень эффективно для памяти, поскольку более длинные (и, следовательно, большие) аудиофайлы занимают довольно много памяти. Мне было интересно, в каком размере игра должна решить передать аудиофайл, а не хранить его в памяти?Сохранение аудиозаписей в памяти

+0

Я не понимаю, что вы имеете в виду. – Jeremy

+0

В какой момент звуковой файл слишком велик, чтобы его можно было хранить в памяти во все времена, и что он должен быть потоковым, когда требуется. –

+1

Нередко бывает, что один длинный файл воспроизводится из файла (иногда даже будучи одновременно распаковывается). Я вижу это много с indie java-играми, в которых есть фоновая музыка (из файла) и звуковые эффекты. Многое зависит от того, сколько оперативной памяти у вас доступно и какие другие аспекты вашей программы нужны с точки зрения ОЗУ. –

ответ

1

Как хорошая практика, вы должны хранить все аудиофайлы (и текстуры) в ОЗУ. Чтение аудиофайлов из памяти намного быстрее, чем чтение аудиофайлов с жесткого диска. Это заставит вашу игру отставать, если ваша игра предназначена для загрузки аудиофайла и воспроизведения ее, когда требуется аудио, а затем уничтожить ее, когда игра заканчивается воспроизведением звука.

Лучший способ - не загружать аудиофайл, когда он не требуется.
Например, ваша игра состоит из 5 этапов. На первом этапе Music_1.mp3 не требуется, поэтому вы не должны его загружать. Удалите аудиофайлы (аудио только для первой ступени, которые не будут использоваться на другом этапе) из бара, когда первый этап будет завершен.

1

., Размер которого игра должна решить, чтобы поток звукового файла, а не хранить его в памяти?

Я бы сделал это по телефону OutOfMemoryError. Все, что до этого, является преждевременной оптимизацией.