2012-12-06 62 views
0

音頻當用戶選擇從列表中的項目被播放,我有三個按鈕,一個是停止播放音頻和其他兩個人玩名單上的下一個項目,一個用於播放前音頻開始列表項目單擊如何停止?

我將如何實現這一目標?我已經使按鈕可點擊,然後我嘗試編寫代碼。 mp.stop();停止音樂,但這不工作?以及如何讓其他按鈕播放列表中的下一個和以前的項目?

下面是我的java文件

public class Nasheeds extends ListActivity { 
//ArrayList holds the data (as HashMaps) to load into the ListView 
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); 
//SimpleAdapter does the work to load the data in to the ListView 
private SimpleAdapter sa; 





@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.nasheeds2); 



    //HashMap links each line of data to the correct TextView 
    HashMap<String,String> item; 
    for(int i=0;i<Nasheed.length;i++){ 
     item = new HashMap<String,String>(); 
     item.put("line1", Nasheed[i][0]); 
     item.put("line2", Nasheed[i][1]); 

     list.add(item); 
    } 

    sa = new SimpleAdapter(this, list, 
      R.layout.nasheeds1, 
      new String[] { "line1","line2" }, 
      new int[] {R.id.displayname, R.id.title}); 

    setListAdapter(sa); 



    getListView().setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     switch (arg2) 
     { 
     case 0: 
      System.out.println("User selected option 1"); 
      MediaPlayer mp = MediaPlayer.create(Nasheeds.this,   R.raw.mok); 
       mp.start(); 


      TextView tv=(TextView) findViewById(R.id.selectedfile); 
      tv.setText("Playing "+ "Mountains of Mekkah, Zain Bikha"); 
      break; 
     case 1: 
      System.out.println("User selected option 2"); 

     case 2: 

      break;     
     } 

    } 

    }); 

} 


private String[][] Nasheed = 
    {{"Mountains of Mekkah","Zain Bikha"}, 
    {"Hadith 2","....add hadith...."}, 
    {"Hadith 3",".....add hadith"},}; 





} 

,這是我的nasheed2.xml文件之一:

<ListView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@android:id/list" 
     android:layout_weight="1.0" 
     /> 

    <LinearLayout 
      android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:drawable/screen_background_light" 
    android:padding="10dip"> 

    <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/selectedfile" 
      android:text="Not file selected" 
      android:textColor="@android:color/black" 
      android:gravity="center_horizontal" 
      android:singleLine="true" 
      android:ellipsize="middle"/> 

    <SeekBar 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/seekbar" 
      android:max="100" 
      android:paddingBottom="10dip"/> 

    <LinearLayout 
        android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:background="@android:drawable/screen_background_light"> 

     <TextView 
      android:id="@+id/songCurrentDurationLabel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView" /> 

      <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/prev" 
        android:src="@android:drawable/ic_media_previous" 
        android:onClick="doClick"/> 

      <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/play" 
        android:src="@android:drawable/ic_media_play" 
        android:onClick="doClick"/> 

      <ImageButton 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/next" 
        android:src="@android:drawable/ic_media_next" 
        android:onClick="doClick"/> 

      <TextView 
       android:id="@+id/songTotalDurationLabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="TextView" /> 

    </LinearLayout> 
    </LinearLayout> 

這是其他nasheed1.xml文件:

<TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/displayname" 
      android:textSize="18dip" 
      android:textStyle="bold" 
      android:singleLine="true" 
      android:ellipsize="end"/> 

    <LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/title" 
        android:textSize="15dip" 
        android:singleLine="true" 
        android:ellipsize="end" 
        android:layout_weight="1.0"/> 

      <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/duration" 
        android:gravity="right" 
        android:textSize="15dip" 
        android:singleLine="true" 
        android:ellipsize="end"/> 
    </LinearLayout> 

</LinearLayout> 

回答

0

請嘗試以下代碼:play button click event。

public boolean istrue = true; 

btnplay.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if (istrue) { 
        mp.pause(); 
        istrue = false; 
       } else { 
        mp.start(); 
        istrue = true; 
       } 
      } 
     }); 

或創建另一個停止音頻按鈕。在點擊該停止按鈕使用

mp.stop(); 
+0

對不起只是爲了澄清,我應該使用此代碼的情況下,內,其中媒體播放器啓動或公共無效onItemClick(適配器視圖爲arg0後,查看ARG1,INT ARG2, long arg3){ – Jay240692

+0

yes是在媒體播放器啓動並且媒體播放器屏幕上的項目點擊之後,而不是在該按鈕上的該屏幕上單擊時可以使用此代碼。 –

+0

我似乎無法使它工作。它不承認「mp」這是因爲我在onItemClick案例中創建媒體播放器:0? – Jay240692