戻る

BGMとSE同時再生

プログラムが複雑になってしまったのでクラス化した。とりあえず使い方だけ説明。SDカードには対応していない。
サンプルプログラムはBGMを再生して左ボタンで「ひよこの鳴き声」「ジャンプ音」が交互に再生、右ボタンで「やられ音」が再生する。
各チャンネルには以下の通りに登録されていて最大3音同時再生される。
チャンネル0「BGM」
チャンネル1「ひよこの鳴き声」「ジャンプ音」
チャンネル2「やられ音」
「ひよこの鳴き声」と「ジャンプ音」は同じチャンネルに登録されているので後から再生された方が1つのみ再生される。

SoundPlayerの使い方

SoundPlayerはSoundStreamとSoundMixerを使用している。
そのためSoundPlayerを使用するには下記の6つのファイルが必要になる。
SoundStream.hpp
SoundStream.cpp
SoundMixer.hpp
SoundMixer.cpp
SoundPlayer.hpp
SoundPlayer.cpp

■includeファイル
#include "SoundPlayer.hpp"
#include "TwinkleBeep04_11KHz_8bit_mono.h" // サウンドデータ
■SoundPlayerを11025Hzで再生する設定にして初期化
SoundPlayer::Initialize(11025);
■SoundPlayerはシングルトンなのでインスタンス取得する
SoundPlayer& sound_player = SoundPlayer::GetInstance();
■サウンドプレイヤーにデータを登録 引数は左からチャンネル,データ,データサイズ,ループするかどうかのフラグ
int bgm_handle = sound_player.Append(0, TwinkleBeep04_11KHz_8bit_mono_wave, static_cast<int>(sizeof(TwinkleBeep04_11KHz_8bit_mono_wave)), true);
■サウンド再生 引数はAppendの戻り値
sound_player.Play(bgm_handle);
■サウンド停止 引数はAppendの戻り値
sound_player.Stop(bgm_handle);
■loop関数で毎回呼び出す
sound_player.Update();

詳しくはサンプルソースのSoundSample2.inoを見てください。

実行結果

SoundSample2.jpg

サンプルプログラムのダウンロード

fileSoundSample2.zip

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS