我在我的应用中添加了两个按钮,一个用于播放,另一个用于启动。一旦我启动应用程序,歌曲就会自动开始播放。当我按下停止它停止但当我按下播放时它不会再次启动
要停止我使用了mediaplayer.stop()
正常工作
开始使用
mediaplayer.start()
无效
根据流程图给出我们需要使用
prepare()
然后
OnPreparedListener.onPrepared()
然后
start()
我不知道如何使用这些功能。请帮帮我
答案 0 :(得分:3)
请勿致电stop()
来阻止媒体播放器使用reset()
。我没有充分的理由。但是,它肯定会起作用。
// for stopping it call below statement
if(mediaPlayer.isPlaying())
mediaPlayer.reset();
//for playing it again
mediaPlayer.prepare();
mediaPlayer.start();
答案 1 :(得分:2)
要重新启动媒体播放器,请使用以下代码。
if (mediaplayer != null) {
mediaplayer.start();
}
还有一件事,而不是使用
mediaplayer.stop()
使用
mediaplayer.pause();
所以它会暂停当前的歌曲而不是停止。
只需检查条件是否为空。
答案 2 :(得分:1)
在Play Button
mp.reset();
mp.setDataSource(song path);
mp.prepare();
mp.start();
mp.setDataSource(song path); not necessary if you playing same sound again
答案 3 :(得分:0)
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.singleitemview);
btnsound=(Button)findViewById(R.id.play_sound);
btnstopsound=(Button)findViewById(R.id.stop_sound);
mp=new MediaPlayer();
btnsound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
mp.setDataSource(Sound);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
mp.setLooping(true);
}
});
btnstopsound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.setLooping(false);
mp.stop();
}
});
}