Медиаплеер Android постоянно зацикливается на ICS

Я хочу воспроизвести звук уведомления, и моя проблема в том, что звук зацикливается навсегда, когда он должен звук только один раз

Я пробовал два способа:

notification.sound = Uri.parse("content://media/internal/audio/media/38");

и

mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
mMediaPlayer.setDataSource(this, Uri.parse("content://media/internal/audio/media/38"));
mMediaPlayer.setLooping(false);
mMediaPlayer.prepare();
mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        Log.v(Utils.TAG, "onprepared");
        mp.start();
    }
});

mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        Log.v(Utils.TAG, "end, we should release");
        mp.stop();
        mp.release();
    }
});

Во втором случае я никогда не вижу след "конец, мы должны отпустить", звук воспроизводится снова и снова и снова.

Есть идеи?

Большое спасибо

ОБНОВЛЕНИЕ:

Я попробовал два устройства и:

  • На Galaxy Nexus с ICS 4.0.4 зацикливается навсегда
  • Работает нормально на HTC Hero 2.2.1
7
задан zegnus 27 May 2012 в 09:05
поделиться