我在mediaPlayer上遇到问题,我想使用botton的onClick更改(文件)mediaplayer = mediaplayer.create(r.folder。“ file”),如果按下另一个按钮,则再次更改它。 我有按钮,我想分配在每个事件中播放的不同声音
答案 0 :(得分:0)
使用switch语句并根据按钮的ID创建具有不同源的媒体文件
答案 1 :(得分:0)
首先在活动中将MediaPlayer变量设置为全局变量,并在onCreate方法在活动中触发时进行分配
Private MediaPlayer mediaPlayer ;
@Override
public void onCreate() {
super.onCreate();
//assign the media player
mediaPlayer = new MediaPlayer();
}
假设您将5个按钮分配为{button1 button2 button3 button4和button5},则将onclick侦听器添加到所有这些按钮中
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//change the music
}
});
现在我们要做的是,每当您单击按钮时,我们都想重置现有的MediaPlayer,然后为其分配一个新文件,然后播放该文件。
因此,在每个侦听器的onClick事件中,您需要运行代码
mediaPlayer.reset();
try {
mediaPlayer.setDataSource("/storage/emulated/0....path to yor file");
mediaPlayer.prepare();
mediaPlayer.start();
}
catch (Exception ex){
//we have an exception
};
每个按钮的onClick侦听器现在应该看起来像这样
//button1
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//change the music
mediaPlayer.reset();
try {
mediaPlayer.setDataSource("/storage/emulated/0....path to yor file");
mediaPlayer.prepare();
mediaPlayer.start();
}
catch (Exception ex){
//we have an exception
};
//button 2
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//change the music
mediaPlayer.reset();
try {
mediaPlayer.setDataSource("/storage/emulated/0....path to yor file");
mediaPlayer.prepare();
mediaPlayer.start();
}
catch (Exception ex){
//we have an exception
};
}
});
}
});
//Button 3 , 4 and 5