2016-07-08 102 views
0

背景音樂,我很新的Android和嘗試添加使用下面的代碼背景音樂:如何停止按鈕然後在Android

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     MediaPlayer player; 
     AssetFileDescriptor afd; 
     try { 
      afd = getAssets().openFd("bg.mp3"); 
      player = new MediaPlayer(); 
      player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),afd.getLength()); 
      player.setLooping(true); 
      player.prepare(); 
      player.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     setContentView(R.layout.activity_main); 
    } 

和現在的背景音樂運行良好。但我想通過點擊圖像按鈕來停止背景音樂。但我沒有得到任何想法如何做到這一點。然而我已經嘗試了下面但根本不工作:

protected void stopmus(View view) { 
     MediaPlayer player; 
      player = new MediaPlayer(); 
      super.onStop(); 
      player.stop(); 
      player = null; 

    } 

請幫我解決它。

+1

變化的媒體播放器實例var和不與本地範圍。當前你正在創建一個新的對象並且在其上調用stop ...這不會阻止播放該軌道的原始MediaPlayer對象。 – Shubhank

+1

是'onCreate'&'stopmus'謊言在同一類? –

+1

嘗試將Mediaplayer播放器指定爲字段變量。這意味着全局變量..在oncreate()之前。然後onCreate()初始化這個變量 - > player = new Mediaplayer();播放音樂,並停止不分配一個新的媒體播放器..just player.stop(); –

回答

0

Make MedaiPlayer 一個全局變量聲明方onCreate()

MediaPlayer player; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // YOUR CODE 
} 

變化YOUT停止方法是這樣的:

protected void stopmus(View view) { 

     if(player!=null) 
     { 
      player.stop(); 
      player = null; 
     } 
     super.onStop(); 
} 
+0

嗨,它按預期工作。但在某些移動設備上(Android版本5),當我點擊停止音樂按鈕時,該應用突然退出,沒有任何錯誤。 –

+0

在logcat中可能有些東西。嘗試找出2-3次或重新啓動Android Studio。 –

+0

我得到這些日誌:http://pastebin.com/YcAAC17f –