由于8.0版本手机的推送添加了渠道,可能会有些问题!
所以想到了一种直接在JPushMessageReceiver的onNotifyMessageArrived方法中播放本地的音乐就好。
方法如下:
注意:在Assets文件下直接放音乐文件(最好是mp3格式,如果播放不出来,可能是音乐太长了的原因)
/**
* 播放本地音乐
*/
public class MediaPlayerUtils {
private static MediaPlayer mediaPlayer;
private static boolean isFirst = true;
private MediaPlayerUtils() {
}
private static MediaPlayer getInstant() {
if (mediaPlayer == null) {
synchronized (MediaPlayerUtils.class) {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
}
}
return mediaPlayer;
}
/**
* 本地语音播放
*/
public static void showSound() {
try {
if (getInstant().isPlaying()) {
return;
}
if (isFirst) {
AssetFileDescriptor fd = BaseApplication.getInstance().getAssets().openFd("bill.mp3");
getInstant().setDataSource(fd.getFileDescriptor(),fd.getStartOffset(),fd.getLength());
getInstant().prepareAsync();
getInstant().setAudioStreamType(AudioManager.STREAM_MUSIC);
getInstant().setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
isFirst=false;
}
});
}else {
getInstant().start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}