サウンド - サスペンド・レジューム2013/11/21

サンプルではBGMが流れ続けますが、一旦サスペンドで音を止めると次にレジュームしても止まったままです。
再開できるように、サウンドのサスペンド・レジューム処理を追加します。

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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
○○○人を右に!

コメント:

トラックバック

このエントリのトラックバックURL: http://raseene.asablo.jp/blog/2013/11/21/7064453/tb