[[戻る>TinyArcade]] *BGMとSE同時再生 [#d1fd7632] プログラムが複雑になってしまったのでクラス化した。とりあえず使い方だけ説明。SDカードには対応していない。~ サンプルプログラムはBGMを再生して左ボタンで「ひよこの鳴き声」「ジャンプ音」が交互に再生、右ボタンで「やられ音」が再生する。~ 各チャンネルには以下の通りに登録されていて最大3音同時再生される。~ チャンネル0「BGM」~ チャンネル1「ひよこの鳴き声」「ジャンプ音」~ チャンネル2「やられ音」~ 「ひよこの鳴き声」と「ジャンプ音」は同じチャンネルに登録されているので後から再生された方が1つのみ再生される。~ *SoundPlayerの使い方 [#ob0b3213] 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を見てください。~ *実行結果 [#b69e9707] #ref(SoundSample2.jpg) *サンプルプログラムのダウンロード [#aec19ca3] #ref(SoundSample2.zip)~