1

Android でメディア プレーヤー アプリケーションを開発しています。少し長い説明ですが、それを読んで解決策を提案してください

アプリケーションには、ラジオ局のリストを表示する最初の画面があります。ユーザーがこれらのラジオ局のいずれかをクリックすると、アプリケーションは再生、一時停止、停止のコントロールを表示する 2 番目の画面に移動します。2 番目の画面のアクティビティは、メディア プレーヤーを準備してメディアの再生を開始するサービスも開始します。今、私には2つの要件があります

  1. メディアの再生が開始されていない間に進行状況を表示したい。2 番目の画面の上に表示され、メディアの再生が開始されると消えます。それ、どうやったら出来るの?サービスを開始したアクティビティまたはサービス自体で何かを行う必要がありますか?
  2. メディアの再生中に、戻るボタンを押して最初の画面に戻りたい (またはアプリケーションを終了する)。ただし、最初の画面から他のラジオ局を選択するか (新しい音楽が開始されます)、通知パネルからアプリケーションに戻って音楽を停止しない限り、音楽は再生し続ける必要があります。

誰かがこれを行うための最良の方法を提案できますか? これを実現するために利用できるサンプル コードはありますか?

ありがとう

4

2 に答える 2

1

ステータス ダイアログを表示するには、UI アクティビティから呼び出される ProgressDialog を調べます。サービスの再生を継続するには、bindService ではなく startService を使用する必要があります。

サービス ライフサイクル リファレンス

于 2011-04-12T18:45:44.090 に答える
0

2 番目の質問については、解決策があります。2 つの方法があります。

  1. あなたが言っているように、再生/一時停止のメディア コントロールを示す 1 つのアクティビティを作成します。また、それぞれのサービスは引き続きバックグラウンドで再生されます。

  2. 2 番目の方法は、再生中のアクティビティでmediaplayer オブジェクトを初期化できることです。タスク マネージャーから強制終了されない限り、mediaplayer がバックグラウンドで再生し続けることを心配しないでください。(アクティビティを終了しても、 mediaplayerは引き続き音楽を再生します)

2番目の方法では、選択と再生アクティビティの両方をSingleInstanceにします

static MediaPlayer mediaplayer;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.radio_play_layout);

 //here check for one thing, **mediaplayer is null or not**. If mediaplayer is null than ur activity is **starting** and u need to have data from selection activity that i need to play this station & If your mediaplayer is not null than you are coming from **notification or widget** , put some IntExtra with pendingIntent to verify that you are actually starting activity from notification or widget.

  if(mediaplayer!=null && (getIntent.getIntExtra("verifier",0)==786)){

        //show ur currently playing stations details and control butttons.becaz activity is started from notification or widget.

  }else{

        //Initialize your mediaplayer , setlayout & startplaying 

  }
  }
于 2013-04-27T10:57:55.547 に答える