2014-11-02 51 views
0

找不到問題在哪裏。請幫助糾正。如果按下第一個按鈕,音樂將開始播放,如果他在第一首音樂結束之前點擊第二個按鈕,第二首音樂將在停止第一首音樂後開始播放。音樂不在按鈕上播放點擊

package com.example.buttonsonic; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 


public class MainActivity extends Activity { 

    private MediaPlayer mp; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final MediaPlayer mp = new MediaPlayer(); 

    } 
    public void button1 (View v){ 
     Button button1 = (Button)findViewById(R.id.button1); 
     mp.release(); 
     mp = MediaPlayer.create(this, R.raw.muzika); 
     mp.start(); 
    } 

    public void button2 (View v){ 
     Button button2 = (Button)findViewById(R.id.button2); 
     mp.release(); 
     mp = MediaPlayer.create(this, R.raw.muzikb); 
     mp.start(); 
    } 

    @Override 
    public void onDestroy() { 
     mp.release(); 
    } 

} 
+0

你能重新框架你的問題嗎? – Jickson 2014-11-02 18:39:31

+0

當然。其實我試圖創建一個程序,其中有兩個按鈕,如果我按下第一個按鈕,應播放一段音樂,如果按下第二個按鈕,第二段音樂將開始播放,但第一段音樂會停下來,反之亦然。但我點擊了按鈕,但沒有播放音樂。我想知道問題出在哪裏。請幫忙。 – 2014-11-03 14:25:19

回答

0

Hi修改了一下你的源代碼。現在它爲我工作。

活動來源:

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 

public class MainActivity extends Activity { 

private MediaPlayer mp; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    // final MediaPlayer mp = new MediaPlayer(); 
    mp = new MediaPlayer(); 
} 

public void button1(View v) { 
    // Button button1 = (Button)findViewById(R.id.button1); 
    mp.release(); 
    mp = MediaPlayer.create(this, R.raw.muzika); 
    mp.start(); 
} 

public void button2(View v) { 
    // Button button2 = (Button)findViewById(R.id.button2); 
    mp.release(); 
    mp = MediaPlayer.create(this, R.raw.muzikb); 
    mp.start(); 
} 

@Override 
public void onDestroy() { 
    mp.release(); 
} 

} 

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center" 
android:orientation="vertical" 
tools:context=".MainActivity" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="button1" 
    android:text="Music 1" /> 

<Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:onClick="button2" 
    android:text="Music 2" /> 

</LinearLayout> 

讓我知道如果我錯過了什麼。

+0

非常感謝您的善意幫助。我會嘗試在我的電腦上,讓你知道。再次感謝您節省寶貴的時間。 – 2014-11-09 12:26:35

+0

歡迎你的朋友:) – Jickson 2014-11-10 03:27:23

+0

總之,我要宣佈你很棒。作爲新手,我盡力而爲,但失敗了;你簡單的方法使它成功!我真的很感激你。它成功運行了好幾次,它顯示出你的代碼無可挑剔。但是,在完美運行幾次之後,該項目開始崩潰,可能是由於與模擬器有關的一些錯誤。顯示控制檯:安裝錯誤:INSTALL_FAILED_INSUFFICIENT_STORAGE。向Manifest添加了android:installLocation =「preferExternal」,但沒有任何更改。我現在應該怎麼做? – 2014-11-10 13:59:29