Difference between revisions of "Tutorial:Audio (Русский)"

m (fixed category)
(Fix and update (исправление ошибок и обновление до англ. версии))
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
В LÖVE, звук управляется в модуле [[love.audio]], который использует OpenAL для проигрывания. love.audio имеет только один тип звукового обьекта - [[Source]]. Вы можете загрузить аудио и проиграть его как в этом примере:
+
В LÖVE, звук управляется в модуле [[love.audio]], который использует OpenAL для проигрывания. love.audio имеет только один тип звукового объекта - [[Source]]. Вы можете загрузить аудио и проиграть его как в этом примере:
 
<source lang="lua">
 
<source lang="lua">
 
sound = love.audio.newSource("pling.wav", "static") -- команда "static" говорит LÖVE загрузить файл в память, подходит для коротких звуковых эффектов
 
sound = love.audio.newSource("pling.wav", "static") -- команда "static" говорит LÖVE загрузить файл в память, подходит для коротких звуковых эффектов
music = love.audio.newSource("techno.ogg") -- если "static" не указано, LÖVE будет проигрывать файл с диска, подходит для длинным музыкальных треков
+
music = love.audio.newSource("techno.ogg") -- если "static" не указано, LÖVE будет проигрывать файл с диска, подходит для длинных музыкальных треков
love.audio.play(sound)
+
sound:play()
love.audio.play(music)
+
music:play()
 
</source>
 
</source>
  
Line 12: Line 12:
  
 
* MP3
 
* MP3
* OGG
+
* Ogg Vorbis
* WAV
+
* WAVE
* а также любой формат "трекерной" музыки, который только захотите - XM, MIDI, MOD, и более 12 свыше.
+
* а также любой формат "трекерной" музыки, который только захотите - XM, MOD, [http://sourceforge.net/p/modplug-xmms/git/ci/master/tree/libmodplug/README#l39 и свыше 20 других].
 +
Ogg Vorbis и 16-bit WAVE рекомендуемые форматы. Другие могут иметь незначительные проблемы. Например, MP3 декодер может дополнять несколькими сэмплами в зависимости от использованного кодера. Эти проблемы от библиотек, что использует LÖVE для декодирования аудиофайлов, и не могут быть исправлены в LÖVE напрямую.
  
 
== Static vs. Streaming ==
 
== Static vs. Streaming ==
  
Помните, что если вы пишете <code>[[love.audio.newSource]]</code> "static" как второй аргумент, то файл будет загружен в память игры, поэтому если вы загрузите 5 мегабайтный сжатый аудио-файл в формате .ogg, он займёт около ~50 мегабайт RAM когда будет раскодирован. Советуем не использовать параметр "static" в таких случаях.  
+
Помните, что если вы пишете <code>[[love.audio.newSource]]</code> "static" как второй аргумент, то файл будет увеличен в памяти, поэтому если вы загрузите 5 мегабайтный сжатый аудио-файл в формате .ogg, он займёт около ~50 мегабайт RAM когда будет распакован. Советуем не использовать параметр "static" в таких случаях.  
  
 
Если вы пропустите параметр "static", звук будет проигрываться из файла непосредственно, иногда это это помогает освободить достаточно большое количество памяти, когда вы работаете с большими файлами.
 
Если вы пропустите параметр "static", звук будет проигрываться из файла непосредственно, иногда это это помогает освободить достаточно большое количество памяти, когда вы работаете с большими файлами.
Line 24: Line 25:
 
== Управление звуками ==
 
== Управление звуками ==
  
Чтобы поставить на паузу, остановить, изменить громкость, зациклить, повысить, итд., прото вызовите соответствующий метод из [[Source]].
+
Чтобы поставить на паузу, остановить, изменить громкость, зациклить, изменить высоту и т. д., просто вызовите соответствующий метод из [[Source]].
  
 
<source lang="lua">
 
<source lang="lua">
Line 34: Line 35:
 
src2:setVolume(0.7)
 
src2:setVolume(0.7)
  
love.audio.play(src1)
+
src1:play()
love.audio.play(src2)
+
src2:play()
 
</source>
 
</source>
  
Line 42: Line 43:
 
== Смотрите также ==
 
== Смотрите также ==
 
* [[TEsound]] - Аудио-менеджер который делает работу со звуковыми эффектами и музыкой значительно проще
 
* [[TEsound]] - Аудио-менеджер который делает работу со звуковыми эффектами и музыкой значительно проще
 +
* [[Minimalist Sound Manager]] - [[Snippets|Сниппет]] который делает использование love.audio проще и автоматически управляет объектами Source
  
 
== На других языках ==
 
== На других языках ==
Line 49: Line 51:
  
 
{{#set:LOVE Version=0.6.1}}
 
{{#set:LOVE Version=0.6.1}}
{{#set:Description=Туториал по использованию [[love.audio]].}}
+
{{#set:Description=Урок по использованию [[love.audio]].}}
 +
{{#set:Tutorial=Yes}}

Latest revision as of 00:26, 9 June 2018

В LÖVE, звук управляется в модуле love.audio, который использует OpenAL для проигрывания. love.audio имеет только один тип звукового объекта - Source. Вы можете загрузить аудио и проиграть его как в этом примере:

sound = love.audio.newSource("pling.wav", "static") -- команда "static" говорит LÖVE загрузить файл в память, подходит для коротких звуковых эффектов
music = love.audio.newSource("techno.ogg") -- если "static" не указано, LÖVE будет проигрывать файл с диска, подходит для длинных музыкальных треков
sound:play()
music:play()

Форматы

LÖVE поддерживает множество аудио-форматов, благодаря модулю love.sound, который осуществляет кодирование. Поддерживаемые форматы:

  • MP3
  • Ogg Vorbis
  • WAVE
  • а также любой формат "трекерной" музыки, который только захотите - XM, MOD, и свыше 20 других.

Ogg Vorbis и 16-bit WAVE рекомендуемые форматы. Другие могут иметь незначительные проблемы. Например, MP3 декодер может дополнять несколькими сэмплами в зависимости от использованного кодера. Эти проблемы от библиотек, что использует LÖVE для декодирования аудиофайлов, и не могут быть исправлены в LÖVE напрямую.

Static vs. Streaming

Помните, что если вы пишете love.audio.newSource "static" как второй аргумент, то файл будет увеличен в памяти, поэтому если вы загрузите 5 мегабайтный сжатый аудио-файл в формате .ogg, он займёт около ~50 мегабайт RAM когда будет распакован. Советуем не использовать параметр "static" в таких случаях.

Если вы пропустите параметр "static", звук будет проигрываться из файла непосредственно, иногда это это помогает освободить достаточно большое количество памяти, когда вы работаете с большими файлами.

Управление звуками

Чтобы поставить на паузу, остановить, изменить громкость, зациклить, изменить высоту и т. д., просто вызовите соответствующий метод из Source.

src1 = love.audio.newSource("bang.wav", "static")
src2 = love.audio.newSource("bgm.mp3")

src1:setVolume(0.9) -- 90% громкости
src1:setPitch(0.5) -- на октаву ниже
src2:setVolume(0.7)

src1:play()
src2:play()

Больше деталей можно найти в Source documentation.

Смотрите также

  • TEsound - Аудио-менеджер который делает работу со звуковыми эффектами и музыкой значительно проще
  • Minimalist Sound Manager - Сниппет который делает использование love.audio проще и автоматически управляет объектами Source

На других языках