【发布时间】:2015-05-25 14:16:53
【问题描述】:
在我的应用程序中,我正在玩"Voice audio Mediaplayer" 和"Background music MediaPlayer",它适用于Android lollipop 5.0 版本以下。但是,当我查看Lollipop and Android One os 时,它并没有同时播放 2 个媒体播放器。只有“背景媒体播放器”正在播放。但是当我签入Debug mode 时,语音媒体播放器正在播放。
这是我初始化媒体播放器的代码
在 onCreate() 中:
audioManger = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManger.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManger = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Intializing Voice audio Mediaplayer
voiceMediaPlayer = new MediaPlayer();
voiceMediaPlayer.setDataSource(bagroundMusicAudioFileName);
voiceMediaPlayer.setLooping(true);
voiceMediaPlayer.prepare();
// Intializing Background music Mediaplayer
bgMusicMediaPlayer = new MediaPlayer();
bgMusicMediaPlayer.setDataSource(bagroundMusicAudioFileName);
bgMusicMediaPlayer.setLooping(true);
bgMusicMediaPlayer.prepare();
播放按钮 onClickListener() :
// Starting Voice and Background MediaPlayers
if(voiceMediaplayer == null) {
voiceMediaPlayer = new MediaPlayer();
voiceMediaPlayer.setDataSource(bagroundMusicAudioFileName);
voiceMediaPlayer.setLooping(true);
voiceMediaPlayer.prepare();
}
voiceMediaPlayer.start();
if(bgMusicMediaPlayer == null) {
bgMusicMediaPlayer = new MediaPlayer();
bgMusicMediaPlayer.setDataSource(bagroundMusicAudioFileName);
bgMusicMediaPlayer.setLooping(true);
bgMusicMediaPlayer.prepare();
}
bgMusicMediaPlayer.start();
在 ClickListener 上的暂停按钮上:
// 在点击暂停按钮时停止语音和背景媒体播放器
if (voiceMediaPlayer != null && voiceMediaPlayer.isPlaying()) {
voiceMediaPlayer.reset();
voiceMediaPlayer.release();
voiceMediaPlayer = null;
}
if (bgMusicMediaPlayer != null && bgMusicMediaPlayer.isPlaying()) {
bgMusicMediaPlayer.reset();
bgMusicMediaPlayer.release();
bgMusicMediaPlayer = null;
}
当我同时播放两个 meidaplayer 时,我只能在 Moto-g(Lollipop os) 设备上听到背景音乐,但此代码是 working on below < 5.0(Lollipop) versions。我的移动版本是4.4.4 kitkat,它正在我的设备上运行。
我的代码有什么问题吗?如何在 Lollipop 中一次播放 2 个 MediaPlayer?
【问题讨论】:
标签: android android-mediaplayer multiple-instances