MediaPlayer не работает после onPause и onResume - PullRequest
1 голос
/ 22 февраля 2011

Я занимаюсь разработкой приложения для Android 2.2.

У меня следующая активность:

public class StartActivity extends Activity {

    private MediaPlayer mp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.startpage);
    }

    @Override
    protected void onResume() {
        super.onResume();
        ImageView ship = (ImageView)findViewById(R.id.greekShip);

        ship.startAnimation(AnimationUtils.loadAnimation(this, R.anim.translate_right));

        if (mp == null) {
            mp = MediaPlayer.create(getApplicationContext(), R.raw.oceanwave);
        }
        else {
            if (mp.isPlaying())
                mp.stop();
            mp.reset();
            try {
                mp.prepare();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        mp.start();
    }

    @Override
    protected void onPause() {
        super.onPause();

        if (mp != null) {
            if (mp.isPlaying())
                mp.stop();
        }
    }
}

Если я нажму кнопку «Домой» на моем телефоне, звук прекратится. Но если я перезагружаю приложение, запускается медиаплеер, но я ничего не слышу.

Знаете ли вы, где проблема?

1 Ответ

0 голосов
/ 23 февраля 2011

mp.prepare() только в другом коде. Исходя из вашего кода, я бы выпустил mp, когда действие остановлено, чтобы освободить ресурсы, когда они не используются, тогда вы можете создать новый в onResume()

...