> For the complete documentation index, see [llms.txt](https://lados-organization.gitbook.io/goku/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lados-organization.gitbook.io/goku/goku-game-engine_jp/14dioshisutemu.md).

# 第14章：オーディオシステム

`AudioPlayer`構造体は、このゲームのオーディオシステムの中核を成すものです。このシステムは、Rustの`SDL2`ライブラリの`sdl2::mixer`モジュールを使用します。`.mp3`、`.flac`、`.mod`、`.ogg`のオーディオファイルを読み込み、再生することができます。`AudioPlayer`構造体には、`mixer_context`という単一のフィールドが含まれています。

`AudioPlayer`は特定のチャンネル数（`numchans`）でインスタンス化されます。コンストラクタ関数（`new`）はSDL2を初期化し、特定の周波数、チャンクサイズ、およびチャンネル数でオーディオデバイスを開きます。

`play`メソッドを提供しており、オーディオファイルを読み込み、指定された回数だけループ再生し、音量を設定します。`play`メソッドは、`AudioPlayer`内の対応するメソッドを使用して一時停止、再開、または停止できる`Channel`を返します。

`AudioPlayer`のインスタンスが破棄されると、現在再生中の音楽が停止され、コンソールにメッセージが表示されます。
