我做了一个项目,其中两个音频使用两个不同的textview触摸播放。 这是一个textview的简单代码
tv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
if( v == findViewById( R.id.CustomFontText ))
{
if (mp != null && mp.isPlaying()) {
mp.stop();
}
else
{
mp.start();
}
if (mp1 != null && mp1.isPlaying()) {
mp1.pause();
}
mp.start();
}
}
return false;
}
此处mp
和mp1
是两个媒体播放器。 tv=textview
。当tv
触摸mp
时播放。并且当tv
再次触摸它停止,,,并且在停止后如果我再次触摸tv
它再次不播放音频。但是我希望在此过程中每次触摸它... 。Play -->Stop-->Play-->Stop....continuous
...我需要修理或实施它?
答案 0 :(得分:0)
请查看MediaPlayer
的{{3}}。
请注意:
一旦处于Stopped状态,在调用State Diagram或
prepare()
将MediaPlayer对象再次设置为 Prepared 状态之前,无法开始播放。
您的代码中似乎也有一个错误,即您拨打mp.start()
两次,并且永远不会调用mp1.start()
。
答案 1 :(得分:0)
首先取消这段代码......
if (mp1 != null && mp1.isPlaying()) {
mp1.pause();
}
mp.start();
然后每次启动mp之前,释放前一个并将setDataSource释放到音乐播放器对象,准备它......
像这样编辑你的代码......
if (mp != null && mp.isPlaying()) {
mp.stop();
}
else
{
mp.release(); // this will bring mp to idle state
mp.setDataSource(MEDIA_PATH + File.separator + songs.get(position));
mp.prepare();
mp.start();
}
我认为现在肯定会工作......