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


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

Sound.cpp
/**************
    一時停止
 **************/
void    SoundPlayer::pause(void)
{
        if ( state == PLAYING ) {                               // 再生中
                if ( bqPlayerObject ) {
                        (*bqPlayerPlay)-&gtSetPlayState(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();
        }
}

サスペンド・レジューム時に、それぞれプレイヤーのサスペンド・レジュームを呼んでいる…だけです。


プロジェクト一式は、こちらから。
[Android プログラミング]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット