サウンド - サスペンド・レジューム ― 2013/11/21
サンプルではBGMが流れ続けますが、一旦サスペンドで音を止めると次にレジュームしても止まったままです。
再開できるように、サウンドのサスペンド・レジューム処理を追加します。
Sound.cpp
再生(SL_PLAYSTATE_PLAYING)や停止(SL_PLAYSTATE_STOPPED)と同様に、SetPlayStateで一時停止(SL_PLAYSTATE_PAUSED)の状態を設定します。
再開は準備からの再生と同じ処理になります。
サンプル
AppMain.cpp
サスペンド・レジューム時に、それぞれプレイヤーのサスペンド・レジュームを呼んでいる…だけです。
プロジェクト一式は、こちらから。
再開できるように、サウンドのサスペンド・レジューム処理を追加します。
Sound.cpp
/************** 一時停止 **************/ void SoundPlayer::pause(void) { if ( state == PLAYING ) { // 再生中 if ( bqPlayerObject ) { (*bqPlayerPlay)->SetPlayState(bqPlayerPlay, SL_PLAYSTATE_PAUSED); // 一時停止状態 } state = PAUSED; } } /********** 再開 **********/ void SoundPlayer::resume(void) { if ( state == PAUSED ) { // 一時停止中 play(); } }
再生(SL_PLAYSTATE_PLAYING)や停止(SL_PLAYSTATE_STOPPED)と同様に、SetPlayStateで一時停止(SL_PLAYSTATE_PAUSED)の状態を設定します。
再開は準備からの再生と同じ処理になります。
サンプル
AppMain.cpp
/************** 一時停止 **************/ void pause_app(void) { for (int i = 0; i < 5; i++) { sound_player[i].pause(); } } /********** 再開 **********/ void resume_app(void) { for (int i = 0; i < 5; i++) { sound_player[i].resume(); } }
サスペンド・レジューム時に、それぞれプレイヤーのサスペンド・レジュームを呼んでいる…だけです。
プロジェクト一式は、こちらから。
コメント
トラックバック
このエントリのトラックバックURL: http://raseene.asablo.jp/blog/2013/11/21/7064453/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。