2016-06-30 3 views
0

音楽をクリックするたびに、選択した曲を再生するアクティビティを開始したいが、この権利を得ることはできないようだ。私は多くのコードを試しましたが、すべて役に立たない。ここでアクティビティの起動時に一度に1つの音楽を再生する方法

は、活動に

lv.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
       public void onItemClick(AdapterView<?> adapter, View v, int position, long id){ 
        Intent i = new Intent(getActivity(), MusicPlaying.class); 
        i.putExtra("song", position); 
        startActivity(i); 
       } 
      }); 

を起動し、以下の上のボタンから意図を受け取る活動であるだろうボタンです。

 @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.music_playing); 
      value = getIntent().getIntExtra("song", 0); 
    ... 
      if (mp.isPlaying()) { 
       mp.stop(); 
      } else { 
       playMusic(); 
      } 
    ... 
} 

編集:選択した曲だけを再生するのではなく、一度に2曲ずつ再生します。

+0

のように行うことができます見えますが、エラーのどのような種類を取得するのですか?あなたのメディアファイルはどのようにエンコードされていますか、どこに入れましたか? –

+0

選択した曲だけを再生するのではなく、一度に2曲ずつ再生します。 – DevMike

+0

MediaPlayerを初期化するコードを表示します。 –

答えて

0

MediaPlayerの状態のトランザクションには非常に注意が必要です。diagramをチェックしてください。

たとえば、stop()を呼び出すと、MediaPlayerを再度準備するまでstart()を呼び出すことはできません。

あなたのケースでは、それはホストアクティビティ(例:画面回転)破壊されたときにMediaPlayerのを解放していなかったように、その

@Override 
public void onDestroy() { 
    if (mp != null) 
     mp.release(); 
    super.onDestroy(); 
} 
+0

動作しませんでした。とにかく、私はそれに解決策を見つけて、あなたの応答に感謝します。 – DevMike

関連する問題