使聲音迴圈播放

更新頁 :
頁面創建日期 :

您需要的工具。

為了從聲音中間迴圈播放,這次我們將使用以下兩個工具:

  • 瓦沃薩烏。
  • XACT。

下載並安裝 Wavosaur。

Wavosaur 是一個工具,用於編輯音訊檔的波形數據。 Wavosaur 可從以下網站下載:

打開頁面后,從圖片中的紅色框架連結下載檔。 有 32 位元和 64 位元版本,因此請使用執行環境中的內容。

Wavosaur のダウンロード

Wavosaur 可以單獨運行,無需安裝。 將其解壓縮到任何資料夾。

下載並安裝 XACT。

XACT 是一種工具,用於微調 Windows 和 Xbox 遊戲聲音,以便在遊戲期間播放。

XACT 本身未單獨分發,並隨 XNA 遊戲工作室和 DirectX SDK 一起提供。 這一次,我將使用 XNA 遊戲工作室附帶的版本。 您可以從以下連結下載 XNA 遊戲工作室:

下載安裝程式後,請運行安裝程式以安裝它。 XNA 遊戲工作室僅正式支援 Windows 7,但已確認它也會在 Windows 10 環境中安裝。

建立在 Wavosaur 中設定循環點的波形檔。

準備好您希望迴圈播放的聲音檔。 基本功能在 WAVE 檔中進行編輯,但基本語音數據也可以從 MP3 檔讀取。 (此示例中使用的音訊檔來自"H/MIX GALLERY"等網站,該檔來自"Pocle 地球 (k15.mp3)"檔。

サウンドファイルを用意

運行 Wavosaur 並啟動它。

Wavosaur を実行

螢幕將彈出。

Wavosaur のウィンドウ

將音訊檔拖放到 Wavosaur 上。 將顯示波形數據。

音声ファイルをドラッグ&ドロップ

您可以通過用滑鼠拖動波形數據來選擇範圍。 選擇要迴圈的範圍。

ループさせたい範囲を選択

從選單中選擇"工具">"迴圈">"創建迴圈點"。 按下工具列上的 L 按鈕也是如此。

「Create loop points」を選択

然後,所選內容的兩側將顯示"開始"和"結束"。 此範圍是迴圈的範圍。

「loop start」「loop end」が表示される

從功能表中選擇「檔」>"儲存"以儲存音訊資料。

音声データを保存

該檔基本上是一個 WAVE 檔。 將其保存到任何資料夾。 如果要再次編輯,可以將其拖放到 Wavosaur 中,以在途中對其進行編輯。

ファイルを保存

檔已保存。 XACT 使用此波形檔。 如果基於 MP3 檔進行編輯,則不再使用 MP3 檔。

ファイルを保存した状態

在 XACT 中建立單聲道播放聲音所需的檔。

從"開始"菜單中選擇"微軟 XNA 遊戲工作室 4.0 刷新" - "微軟交叉平臺音訊創建工具 3 (XACT3)"以啟動它。 如果從 DirectX SDK 等安裝,請啟動它。

Microsoft Cross-Platform Audio Creation Tool 3 (XACT3)

它立即進入螢幕。 XACT 只執行最簡單的任務,因此,如果您想瞭解有關其他用途的資訊,請查看 Web 等。 使用具有中間迴圈播放設定的波形檔不需要 XACT 執行任何特殊操作。

XACT 起動画面

首先創建專案。 按一下工具列上的「新建專案」 按鈕。

プロジェクトを作成

指定專案的儲存位置。

プロジェクトの保存場所を指定

創建專案后,右鍵單擊"波形後退"並選擇"新波形銀行"。

New Wave Bank

確認已創建波形銀行后,右鍵單擊"聲音銀行",然後選擇"新建聲音銀行"。

New Sound Bank

螢幕將類似於圖形。

Wave Bank と Sound Bank 作成後

將剛剛建立的波形檔拖放到波形庫視窗中。

WAVE ファイルを「Wave Bank」のウィンドウにドラッグ&ドロップ

然後,將添加到波形銀行的數據拖放到 Sound Bank 的左上角區域。

Sound Bank の左上のエリアにドラッグ&ドロップ

然後,將添加到聲音區域的數據拖放到左下角的 Cue 區域。

Cue のエリアにドラッグ&ドロップ

選擇 Sound 檔,並確保在「輸入」 中選中左下角屬性的「Looping」。

「Looping」が「Infinite」にチェック

完成後,按一下工具列上的「生成」按鈕進行生成。

Build

將顯示一個視窗,但只需按"完成"按鈕即可完成。

Finish

確保在保存項目的資料夾中創建了"Win"資料夾,並在其中創建了三個檔。

3つのファイル

建立遊戲專案。

只需在 MonoGame 專案中註冊文件並創建程式即可。 這一次,我在 Windows Project 中創建它。 我們已確認它適用於 Windows 應用商店應用和 Windows Mobile。

Windows Project

創建專案後,在「內容」資料夾中註冊以前在 XACT 中創建的三個檔。 這並不意味著你必須是一個特殊的內容資料夾。

Content フォルダに3つのファイルを追加

選擇添加的三個檔後打開屬性。

3つのファイルを選択している状態でプロパティを開く

從複製到輸出目錄變更為「如果是新目錄,請複製」。

新しい場合はコピーする

對於 Windows 通用應用專案 (UAP),它不適用於上述設置。 請改為將生成操作更改為"內容"

「コンテンツ」に変更

其餘的將只由程式完成。 基本上,它與使用 XACT 的聲音播放程式相同。

將 Microsoft.Xna.Framework.Audio 添加到要使用的命名空間。

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

在欄位中添加以下三行「音訊引擎」、「聲音銀行」 和「波形庫」。

GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;

AudioEngine audioEngine;
SoundBank soundBank;
WaveBank waveBank;

在 LoadContent 方法中,我們分別創建了音訊引擎、SoundBank 和 WaveBank 的實例。 每個檔對應於添加到"內容"資料夾的三個檔,因此請指定相對於專案根資料夾的路徑。

在這裡,你立即得到Cue,併發揮它,但玩真正的遊戲,你需要的地方。

protected override void LoadContent()
{
  // Create a new SpriteBatch, which can be used to draw textures.
  spriteBatch = new SpriteBatch(GraphicsDevice);

  // TODO: use this.Content to load your game content here
  audioEngine = new AudioEngine(@"Content/LoopSample.xgs");
  soundBank = new SoundBank(audioEngine, "Content/Sound Bank.xsb");
  waveBank = new WaveBank(audioEngine, "Content/Wave Bank.xwb");

  soundBank.GetCue("k15").Play();
}

在此狀態下運行,並檢查迴圈是否從中間播放。 實際迴圈控制在 WAVE 檔或 XACT 階段完成,因此無需以程式設計方式進行任何特殊設置。

關於壓縮音訊檔。

XACT 允許您壓縮音訊檔並減小檔大小。 XNA 遊戲工作室可以播放壓縮的檔,但 MonoGame 不支援它,因此在播放時可能會引發異常或播放意外的聲音。 您只能使用未壓縮的波形檔。 正如你所看到的,檔大小會大大增加。

如果確實要減小檔大小,則需要調整波形檔的採樣率等。

iPhone、Android、Linux 和 OUYA 支援。

由於 XACT 是面向 Windows 和 Xbox 的工具,因此尚未在其他平臺上正常工作。 如有必要,請嘗試並決定是否採用它。