我想创建活动背景音乐,但MediaPlayer
不重复播放:(
为什么我的MediaPlayer
没有循环?
有我的代码:
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tersetetete);
mediaPlayer = new MediaPlayer();
mediaPlayer.setVolume(8f, 8f);
mediaPlayer.setLooping(true);
mediaPlayer = MediaPlayer.create(this, R.raw.fon);
mediaPlayer.start();
}
答案 0 :(得分:6)
致电
mediaPlayer.setLooping(true);
后
mediaPlayer.start();
答案 1 :(得分:4)
将mediaPlayer = new MediaPlayer();
替换为您在下面写的行mediaPlayer = MediaPlayer.create(this, R.raw.fon);
。
您遇到了问题,因为new MediaPlayer();
创建了一个新的MediaPlayer
对象,您可以在其上设置Volume和Looping属性,但之后您将使用MediaPlayer.create(this, R.raw.fon);
创建一个新对象,然后你播放由新对象表示的声音,该声音没有任何循环属性设置为true,也没有任何8f 8f的音量。
以下是您可以使用的完整代码:
MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tersetetete);
mediaPlayer = MediaPlayer.create(this, R.raw.fon);
mediaPlayer.setVolume(8f, 8f);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
答案 2 :(得分:1)
我在KITKAT上并且setlooping(true)对我不起作用,所以我做了这些改变,现在它起作用了......
MediaPlayer mMediaPlayer;
//Stop on going Music
AudioManager audiomanager = (AudioManager)context.getSystemService("audio");
if (audiomanager.isMusicActive())
{
Intent intent = new Intent("com.android.music.musicservicecommand");
intent.putExtra("command", "pause");
context.sendBroadcast(intent);
}
//Setting Max Volume
audiomanager.setStreamVolume(3, audiomanager.getStreamMaxVolume(3), 0);
mMediaPlayer = MediaPlayer.create(context.getApplicationContext(),R.raw.file);
mMediaPlayer.start();
//This did the trick
mMediaPlayer.setOnErrorListener(new android.media.MediaPlayer.OnErrorListener() {
public boolean onError(MediaPlayer mediaplayer, int i, int j)
{
return false;
}
});
mMediaPlayer.setLooping(true);
停止使用。
mMediaPlayer.release();