Android MediaPlayer 未播放
Android MediaPlayer not playing
以下问题:我只想在 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/com.example.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.729 19960-19960/com.example.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.862 19960-19960/com.example.simplesound D/MediaPlayer: setSubtitleAnchor in MediaPlayer
01-05 11:07:17.925 19960-21184/com.example.simplesound E/MediaPlayer: error (1, -2147483648)
01-05 11:07:17.926 19960-19960/com.example.simplesound E/MediaPlayer: Error (1,-2147483648)
有人知道如何解决这个问题吗?
使用下面回答 here 的代码。它会非常有效。
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();
}
}
MediaPlayer player = MediaPlayer.create(this, R.raw.zindgivalaaop);
player.setVolume(50,50);
player.start();
@Override
public void onDestroy() {
super.onDestroy();
player.stop();
player.release();
}
尝试传递 class 上下文 getApplicationContext()
试试这个:Playing short .wav files - Android
SoundPool 是播放短 .wav(2-3 秒)文件的最佳方式
更多信息:https://developer.android.com/reference/android/media/SoundPool.html
我认为您的 MediaPlayer 正在运行。在设置中检查设备 'Media volume'。 JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
当设备 'Media volume' 设置为零时出现此消息。
以下问题:我只想在 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/com.example.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.729 19960-19960/com.example.simplesound E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
01-05 11:07:17.862 19960-19960/com.example.simplesound D/MediaPlayer: setSubtitleAnchor in MediaPlayer
01-05 11:07:17.925 19960-21184/com.example.simplesound E/MediaPlayer: error (1, -2147483648)
01-05 11:07:17.926 19960-19960/com.example.simplesound E/MediaPlayer: Error (1,-2147483648)
有人知道如何解决这个问题吗?
使用下面回答 here 的代码。它会非常有效。
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();
}
}
MediaPlayer player = MediaPlayer.create(this, R.raw.zindgivalaaop);
player.setVolume(50,50);
player.start();
@Override
public void onDestroy() {
super.onDestroy();
player.stop();
player.release();
}
尝试传递 class 上下文 getApplicationContext()
试试这个:Playing short .wav files - Android
SoundPool 是播放短 .wav(2-3 秒)文件的最佳方式
更多信息:https://developer.android.com/reference/android/media/SoundPool.html
我认为您的 MediaPlayer 正在运行。在设置中检查设备 'Media volume'。 JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
当设备 'Media volume' 设置为零时出现此消息。