web-dev-qa-db-ger.com

Android MediaPlayer wird nicht abgespielt

Folgendes Problem: Ich möchte nur eine kleine .wav Datei mit einem Mediaplayer in Android abspielen. Die Datei .wav befindet sich im Verzeichnis raw. Ich möchte den Sound von der MainActivity starten. So spiele ich den Sound:

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.sound1);
mp.start();

Sobald ich mp.start() aufrufe, werden in meinem LogCat folgende Fehler angezeigt:

01-05 11:07:17.729 19960-19960/de.benedev.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.729 19960-19960/de.benedev.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.862 19960-19960/de.benedev.simplesound D/MediaPlayer: setSubtitleAnchor in MediaPlayer
01-05 11:07:17.925 19960-21184/de.benedev.simplesound E/MediaPlayer: error (1, -2147483648)
01-05 11:07:17.926 19960-19960/de.benedev.simplesound E/MediaPlayer: Error (1,-2147483648)

Weiß jemand, wie man das behebt?

5
BeNeDeV
MediaPlayer player = MediaPlayer.create(this,  R.raw.zindgivalaaop);
player.setVolume(50,50);
player.start();

@Override
public void onDestroy() {
     super.onDestroy();
     player.stop();
     player.release();
}

versuche stattdessen den Klassenkontext zu übergeben getApplicationContext()

2
Arpan Sharma

Versuchen Sie Folgendes: Wiedergabe kurzer .wav-Dateien - Android

SoundPool ist der beste Weg, um kurze WAV-Dateien (2-3 Sek.) Abzuspielen

Weitere Informationen: https://developer.Android.com/reference/Android/media/SoundPool.html

2
Krupa Kakkad

Verwenden Sie den Code, unter dem hier geantwortet wurde. Es wird wie ein Zauber wirken.

package com.example.hellomoon;

import Android.content.Context;
import Android.media.MediaPlayer;

public class AudioPlayer {

private MediaPlayer mMediaPlayer;

public void stop() {
    if (mMediaPlayer != null) {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
}

public void play(Context c, int rid) {
    stop();

    mMediaPlayer = MediaPlayer.create(c, rid);
    mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer) {
            stop();
        }
    });

    mMediaPlayer.start();
}

}
2
Chingiz

Ich denke dein MediaPlayer funktioniert. Überprüfen Sie die Medienlautstärke des Geräts in den Einstellungen. JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0 Diese Meldung wird angezeigt, wenn das Gerät 'Medienvolumen' auf Null gesetzt ist.