web-dev-qa-db-ja.com

Android MediaPlayerが再生されていません

次の問題:Androidのメディアプレーヤーで小さな_.wav_ファイルを再生したいだけです。 _.wav_ファイルはrawディレクトリにあります。 MainActivityからサウンドを開始したい。これが私がサウンドを再生する方法です:

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

mp.start()を呼び出すとすぐに、LogCatで次のエラーが発生します。

_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)
_

誰もがそれを修正する方法を知っていますか?

6
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();
}
_

代わりにクラスコンテキストを渡してみてくださいgetApplicationContext()

2
Arpan Sharma

これを試してください: 短い.wavファイルを再生する-Android

SoundPoolは、短い.wav(2〜3秒)ファイルを再生するための最良の方法です。

詳細情報: https://developer.Android.com/reference/Android/media/SoundPool.html

2
Krupa Kakkad

以下のコードを使用して、 ここ と答えました。それは魅力のように機能します。

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

MediaPlayerは機能していると思います。設定でデバイスの「メディアボリューム」を確認してください。 JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0このメッセージは、デバイスの「メディアボリューム」がゼロに設定されている場合に表示されます。