2012-04-27 1 views
1

의 클릭 이벤트에 sdcard에 음악을 재생하는 나는어떻게 커버 플로우 이미지

여기에 내가 sdcard에 노래를 재생하려면 온 클릭 이벤트와

http://www.inter-fuser.com/2010/02/android-coverflow-widget-v2.html

, 나는 각각의 이미지를 클릭에 의미 커버 플로우 구현을위한 링크를 따라 coverflow SD 카드에서 differnet 노래를 연주하고 싶습니다.

아이디어를 공유하십시오.

도움말은 언제나 감사하겠습니다.

미리 감사드립니다.

 coverFlow.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(CoverAdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 

       if (position == 0) { 

       // play song number1 

      } else if (position == 1) { 

      // play song number 2 

      } 

     } 
    }); 

나는이

public class Entertainment extends Activity { 
ListView musiclist; 
TextView CurrentPlying; 
Cursor musiccursor; 
int music_column_index; 
int count; 
MediaPlayer mMediaPlayer; 
int seekBarState =0; 
ImageButton rewindButton,playButton,forwardButton,stopButton; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.entertainment); 
    list_of_media_files(); 
    Gallery addsgallery = (Gallery) findViewById(R.id.addsgallery); 
    addsgallery.setAdapter(new AddsViewAdaptor(this)); 
    rewindButton = (ImageButton) findViewById(R.id.rewind); 
    playButton = (ImageButton) findViewById(R.id.play); 
    forwardButton = (ImageButton) findViewById(R.id.forward); 
    stopButton = (ImageButton) findViewById(R.id.stop); 
    playButton.setOnClickListener(new PlayButtonListner()); 
    rewindButton.setOnClickListener(new RewindButtonListner()); 
    forwardButton.setOnClickListener(new ForwardButtonListner()); 
    stopButton.setOnClickListener(new StopButtonListner()); 
} 
class PlayButtonListner implements View.OnClickListener{ 
    public void onClick(View v) { 
     try{ 
      if (mMediaPlayer.isPlaying()) { 

       mMediaPlayer.pause(); 
      }else{ 
       mMediaPlayer.start(); 
      } 

     } 
     catch(Exception ex){ 
      Log.i("Exception", "Exception in mediaplayer e = " + ex); 
     } 
    } 
} 
public void onInit(int status) { 


} 

private void list_of_media_files() { 
    //System.gc(); 

    String[] proj = { MediaStore.Audio.Media._ID, 
      MediaStore.Audio.Media.DATA, 
      MediaStore.Audio.Media.DISPLAY_NAME, 
      MediaStore.Video.Media.SIZE }; 
    musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
      proj, null, null, null); 
    count = musiccursor.getCount(); 
    musiclist = (ListView) findViewById(R.id.PhoneMusicList); 
    musiclist.setAdapter(new MusicAdapter(this)); 

    musiclist.setOnItemClickListener(musicgridlistener); 
    mMediaPlayer = new MediaPlayer(); 


} 

private OnItemClickListener musicgridlistener = new OnItemClickListener() { 

    public void onItemClick(AdapterView parent, View v, int position, 
      long id) { 
     //System.gc(); 
     music_column_index = musiccursor 
     .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA); 
     musiccursor.moveToPosition(position); 
     String filename = musiccursor.getString(music_column_index); 
     // CurrentPlying =(TextView) findViewById(R.id.currentSong); 
     //CurrentPlying.setText(music_column_index); 
     try { 
      if (mMediaPlayer.isPlaying()) { 
       mMediaPlayer.reset(); 
      } 
      mMediaPlayer.setDataSource(filename); 
      mMediaPlayer.prepare(); 
      mMediaPlayer.start(); 

     } catch (Exception e) { 

     } 

    } 
}; 

public class MusicAdapter extends BaseAdapter { 
    private Context mContext; 

    public MusicAdapter(Context c) { 
     mContext = c; 
    } 

    public int getCount() { 
     return count; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     System.gc(); 
     TextView tv = new TextView(mContext); 
     String id = null; 
     if (convertView == null) { 
      music_column_index = musiccursor 
      .getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME); 
      musiccursor.moveToPosition(position); 
      id = musiccursor.getString(music_column_index); 
      music_column_index = musiccursor 
      .getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE); 
      musiccursor.moveToPosition(position); 
      id += " Size(KB):" + musiccursor.getString(music_column_index); 
      tv.setText(id); 
     } else 
      tv = (TextView) convertView; 
     return tv; 
    } 
} 

class RewindButtonListner implements View.OnClickListener{ 
    public void onClick(View v) { 
     try{ 
      if (mMediaPlayer.isPlaying()) { 
       seekBarState=mMediaPlayer.getCurrentPosition(); 
       mMediaPlayer.seekTo(seekBarState-300); 
      }else{ 
       mMediaPlayer.start(); 
      } 

     } 
     catch(Exception ex){ 
      Log.i("Exception", "Exception in mediaplayer e = " + ex); 
     } 
    } 
} 
class ForwardButtonListner implements View.OnClickListener{ 
    public void onClick(View v) { 
     try{ 
      if (mMediaPlayer.isPlaying()) { 
       seekBarState=mMediaPlayer.getCurrentPosition(); 
       mMediaPlayer.seekTo(seekBarState+300); 
      }else{ 
       mMediaPlayer.start(); 
      } 

     } 
     catch(Exception ex){ 
      Log.i("Exception", "Exception in mediaplayer e = " + ex); 
     } 
    } 
} 
class StopButtonListner implements View.OnClickListener{ 
    public void onClick(View v) { 
     try{ 
      if (mMediaPlayer.isPlaying()) { 
       mMediaPlayer.stop(); 
       mMediaPlayer.reset(); 
      }; 

     } 
     catch(Exception ex){ 
      Log.i("Exception", "Exception in mediaplayer e = " + ex); 
     } 
    } 
} 

}

답변

0

첫 메이크업의 목록 또는 다음 노래를 통과 SDCARD에서 노래 목록의 배열을 사용하여 위치

coverFlow.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(CoverAdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 

       playSong(list[position]); <--- 
     } 
    }); 
+0

덕분에이 코드를 다음 있어요 빠른 답장을 위해, 그러나 나는 목록에 노래를 저장하고 연주하는 것을 혼란스러워한다. Coverflow의 onclick과 그들. 나는 그것을 시도 할 것이고, 잠시 동안 당신의 대답을 잠시 멈추게 할 수 있습니다. 다시 감사합니다 – Randroid

+0

당신은 노래 이름 목록을 가질 수 있습니다 .... 그래서 그 목록에 따라 노래를 재생할 수 있습니다 – MAC

+0

당신이 노래를 연주하는 방법을 코드를 게시 할 수 있습니다 .... 그래서 내가 설명 할 수 ... – MAC