Difference between revisions of "Tutorial:Audio (日本語)"

m (improved translations (decode/r -> 復号化/器からデコード/ダー、encode/r → 符号化/器からエンコード/ダーへ)、padding → 詰め物からパディング)
m
Line 20: Line 20:
 
== 静的と段階的の比較 ==
 
== 静的と段階的の比較 ==
  
<code>[[love.audio.newSource (日本語)|love.audio.newSource]]</code> の第二引数へ "static" を渡した場合は、音声ファイルはメモリへ展開されるため、従ってこの方法にて 5MB の .ogg ファイルを読み込むと、 RAM を ~50MB ほど消費して展開されてしまうことを覚えておいてください。このような場合は "static" を使用しないことを考慮してください。
+
<code>[[love.audio.newSource (日本語)|love.audio.newSource]]</code> の第二引数へ "static" を渡した場合は、音声ファイルはメモリへ一括展開されます。よって、これで 5MB の .ogg ファイルを読み込むと、 RAM を ~50MB ほど消費して展開されてしまうことを覚えておいてください。このような場合は "static" を使用しないことを考慮してください。
  
 
"static" を省略した場合、音声ファイルは演奏しながら段階的に読み込まれます。これを重量級のファイルを取り扱う場合に使用するとメモリを大幅に節約することができます。
 
"static" を省略した場合、音声ファイルは演奏しながら段階的に読み込まれます。これを重量級のファイルを取り扱う場合に使用するとメモリを大幅に節約することができます。

Revision as of 06:18, 15 May 2017

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 モジュールにより様々な音声形式に対応しています。処理時には全てデコードして扱います。下記の形式に対応しています:

推奨形式は Ogg Vorbis および 16-bit WAVE です。それ以外の形式は細部で奇癖がある場合があります。例えば MP3 デコーダーでは、作成時に使用されたエンコーダーによりサンプルのパディング挿入処理を行うことがあります。これらの問題は LÖVE が音声ファイルのデコードに使用しているライブラリが原因ですので LÖVE の内部で直接的な修正を行うことはできません。

静的と段階的の比較

love.audio.newSource の第二引数へ "static" を渡した場合は、音声ファイルはメモリへ一括展開されます。よって、これで 5MB の .ogg ファイルを読み込むと、 RAM を ~50MB ほど消費して展開されてしまうことを覚えておいてください。このような場合は "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) -- 1オクターブ下げます。
src2:setVolume(0.7)

src1:play()
src2:play()

より詳しい情報は Source のドキュメンテーション にあります。

関連

そのほかの言語