2016-10-06 3 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, когда вам больше не нужно. Из Android docs

недействительным выпуск()

Освобождает ресурсы, связанные с этим MediaPlayer объекта. Это считается хорошей практикой, чтобы вызвать этот метод, когда вы закончите, используя MediaPlayer.

Так вместо того, чтобы использовать pause()

недействительной паузу() воспроизведения

пауз. Вызов start() для возобновления.

Посмотрите на диаграмме состояний MediaPlayer MediaPlayer State Diagram

Что диаграмма представляет уважительное состояние, где это OK использовать MediaPlayer объект.

+0

Я пробовал, но не работал –

+0

вы можете переформатировать код и дать. –

+0

requirements = Музыка должна приостанавливаться, когда я нажимаю кнопку «домой» и продолжаю с того места, где она была приостановлена, когда я открываю приложение из списка последних приложений. –

Смежные вопросы