1
我做了一個示例應用程序,其中只有兩個按鈕 1.開始(開始音樂) 2.停止(停止音樂)。MediaPlayer.pause()不適用於Moto G Turbo Edition Android 6.0
這裏是我的代碼:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Button b1 = (Button) findViewById(R.id.button_start);
b1.setOnClickListener(this);
Button b2 = (Button) findViewById(R.id.button_stop);
b2.setOnClickListener(this);
mp = MediaPlayer
.create(getApplicationContext(), R.raw.alarm);
try {
mp.prepare();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
}
mp.setLooping(true);
mp.setVolume(0.5f,0.5f);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.button_start:
startAlarm();
break;
case R.id.button_stop:
stopAlarm();
}
}
private void stopAlarm() {
if(mp.isPlaying()) {
Log.e("XXX","Tone Paused");
mp.pause();
}
new Thread(new Runnable() {
@Override
public void run() {
while(mp.isPlaying()){
Log.e("XXX", "tone still playing ...");
}
Log.e("XXX", "Thread stopped");
}
}).start();
}
private void startAlarm() {
mp.start();
}
}
現在我看到mp.pause()被調用和mp.isPlaying()的返回後假。但是,音樂不斷播放,直到我關閉設備才停止。
我不確定這是否是Android操作系統或硬件的錯誤。我檢查了其他的Android 6.0設備,但它工作正常。
有人能告訴我這可能的根本原因嗎?
在此先感謝!
請檢查日誌: STOP按鈕按下: ---------------------- --------- 03-03 15:41:59.746 14518-14518/com.example.testmarshmallow E/XXX:Tone Patensed ---------------- -------------------- 但實際上仍在播放音調。 再次按下STOP按鈕: ----------------------------------- 03-03 15:42: 02.010 14518-14518/com.example.testmarshmallow E/XXX:線程啓動 03-03 15:42:02.012 14518-18325/com.example.testmarshmallow E/XXX:線程已停止 – Dharsam1990
檢查更新回答 – sasikumar
其作爲資源本身正在被釋放。但我的問題是爲什麼pause()不起作用。請幫我找出答案。 – Dharsam1990