2011-07-11 11 views
1

私は現在listviewを持っています。アイテムをクリックすると、新しいウィンドウが表示され、それに関連付けられた曲が再生されます。position問題は、戻るボタンを押してlistviewに戻り、同じ項目を押したときに、すでに再生中の曲が再び再生されてしまうことです。とにかくこれを修正するために、同じアイテムをクリックしてその曲が再生されているときに、その曲を再生しないようにしますか?ありがとうAndroidリストビューとメディアプレーヤー

答えて

0

音楽を再生するサービスの作成についてはthis articleをご覧ください。あなたがしようとしているもののように見えます。

アクティビティonPauseまたはonStopメソッドが呼び出されたときに音楽を停止する関数を追加することもできます。その後、活動していない音楽活動は、自分の楽しい時間にアンドロイドOSによって破壊され、複数の音楽ファイルを再生することについて心配する必要はありません。この方法の欠点は、新しいウィンドウが表示されている間だけ音楽を再生できることです。ウィンドウを変更すると、onPauseまたはonStopメソッドが呼び出されるため、ウィンドウが停止します。音楽をバックグラウンドで再生したい場合は、サービス技術を使用する必要があると思います。

サービスを開始するには、インテントでバインドするか、startServiceメソッドを使用します。例えば、上記のリンク先の記事では、サービスがここで開始され

public class MusicDroid extends ListActivity { 
    public static final String MEDIA_PATH = new String("/sdcard/"); 
    private List<String> songs = new ArrayList<String>(); 
    private MDSInterface mpInterface; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.songlist); 
     this.bindService(new Intent(MusicDroid.this,MDService.class), 
      null, mConnection, Context.BIND_AUTO_CREATE); // <- starting service by creating a binding. 
    } 
} 

official Android Services apiページでは、サービスに対処する方法の良い概観を与えるべきです。

+0

私は記事を読んで、AndroidサービスについてもYouTubeでビデオを見ましたが、私はまだ1つの質問があります:アクティビティを作成して、そのアクティビティ内でサービスを開始するのか、それとも逆の方法ですか? – Splitusa

+0

質問に答えるには、アクティビティを作成し、アクティビティonCreateメソッドでサービスを開始することができます。 –

0

音楽をバックグラウンドで実行させるには、serviceを使用する必要があります。

関連する問題