0

Androidでは、戻る/ホームボタンを押すと音楽が停止しますが(問題ありません)、アクティビティに再び入ると、音楽の再生を開始/再開したいと考えています。

プログラムがバックグラウンドになったとき、Android はオーディオの再生をどのように管理しますか?

4

3 に答える 3

2

以下のコードは、アクティビティが破棄されていない場合にのみ機能します。ユーザーが戻るボタンを押しても生き残るには、メディア プレーヤーの現在のステータスをファイルに書き出し、アクティビティが再開されたときにそれをリロードする必要があります。

ただし、それが正しい動作かどうかはわかりません。戻るボタンが押された後、アプリケーションは終了し、次回はリセット状態で起動する必要があります。おもう。戻るボタンがアプリのナビゲーションに使用される場合、解決策は、アプリを終了する最後の戻るボタンに、ユーザーが本当に本当に終了したいことを尋ねるアラートを表示することです。戻るボタンの動作をカスタマイズするには、Activity.onBackPressed をオーバーライドします。

システムがより多くのメモリを探している場合、画面が反転した場合、または他のいくつかの高レベルのシステム状態が変化した場合、一時停止状態でもアクティビティが破棄される可能性があることにも注意してください。このケースに対処するには、savedInstanceState 処理を実装する必要があります。Activity.onSaveInstanceState を実装し、onCreate の実装で null 以外の savedInstanceState パラメーターを探します。

どちらの場合も、メディア プレーヤーを再作成し、オーディオを再度準備し、復活したオーディオの正しい位置を探すための何らかの方法を実装する必要があります。

于 2013-01-15T19:38:45.697 に答える
1

通常は、問題に関するより多くの詳細とコードを含める必要がありますが、関連する問題に関する他の投稿をたまたま目にしました。

には次のものが必要ですonResume()mp.start()で実行している場合は、後に呼び出されるonCreate()ようにその開始を削除できることに注意してください。onResume()onCreate()

@Override
protected void onResume() {
    if(mp != null && !mp.isPlaying())
        mp.start();
    super.onResume();
}

start()fromMeidaPlayerは、停止または再生されていない場合は最初からやり直し、一時停止された場合は一時停止された場所から開始されます。

于 2013-01-15T18:48:49.260 に答える
0

このメソッドを追加し、

  @Override
    protected void onResume() {
        super.onResume();
if(mp != null)
   mp.start();
}
于 2013-01-15T19:10:50.000 に答える