2016-10-06 87 views
-4

按下主頁按鈕後,按下應用程序後,音樂不會恢復。請在給出的代碼中進行必要的更改。在Android中恢復音樂

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onPause() { 
     super.onPause(); 
     mySound.release(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     if(mySound != null) 
      mySound.start(); 
    } 

    MediaPlayer mySound; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mySound = MediaPlayer.create(MainActivity.this,R.raw.sleep); 
     mySound.start(); 
     mySound.setLooping(true); 
    } 
} 
+0

代碼在哪裏? –

+0

請重新表達您的問題並提供更多相關信息 –

+0

代碼回答 –

回答

-1
package com.example.android.mediaplayerdemonstration; 

import android.media.MediaPlayer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 


public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onPause() { 
     super.onPause(); 
     mySound.release(); 


    } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     if(mySound != null) 
      mySound.start(); 
    } 

    MediaPlayer mySound; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mySound = MediaPlayer.create(MainActivity.this,R.raw.sleep); 
     mySound.start(); 
     mySound.setLooping(true); 
    } 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 


} 
+0

這是我的code.plz告訴我的錯誤。 –

1

首先,看看How to ask a Good Question on SO

其次通過How to Add code in SO閱讀。

現在回答你的問題。問題在於你的ActivityonPause()方法,只需將其更改爲。

@Override 
protected void onPause() { 
    super.onPause(); 
    if (mySound != null) 
     mySound.pause(); 
} 

只有當您不再需要MediaPlayer時纔會調用release()。從Android docs

無效發行()與此MediaPlayer對象相關

釋放資源。當您使用MediaPlayer完成 時,請考慮使用此方法的最佳做法是 。

所以改用pause()

無效暫停()

暫停播放。調用start()來恢復。

看一看的MediaPlayer MediaPlayer State Diagram

什麼圖表示是有效狀態的地方是OK使用MediaPlayer對象的狀態圖。

+0

我試過了,但還沒有開始工作 –

+0

請問你可以重新格式化代碼並給予。 –

+0

requirements =當我按下主頁按鈕時,音樂應該暫停,並且當我從最近的應用程序列表中打開應用程序時,音樂應該暫停。 –