小弟最近在看Mediaplayer、、、今天突然发现一个问题、
在播放的时候按下暂停键、、在按下停止键、、、然后点播放键的时候是接在暂停那个位置开始播放的、
如果在播放的时候直接按停止键、、、、是正常的百思不得其解、、、、
求指点!在线等。
在播放的时候按下暂停键、、在按下停止键、、、然后点播放键的时候是接在暂停那个位置开始播放的、
如果在播放的时候直接按停止键、、、、是正常的百思不得其解、、、、
求指点!在线等。
解决方案 »
- android EditText问题
- Android LBS App:春节在家无聊昨天忙活了一天,终于无师自学,开发了俺的第一个Android 程序
- SKIA源代码发现的两处内存泄露及解决方法!
- android.provider.Telephony.SMS_RECEIVED怎么在api中找不到呢
- 关于AndroidManifest.xml的一个小问题
- EditText控件怎么或不不到输入的内容呢?
- 如何动态改变 AbsoluteLayout布局中其它布局的坐标,急
- addView一个LinearLayout的布局显示有问题
- android ListView展示不出来数据,也没有提示错误。跪求大神帮忙
- 求助!!!
- 如何实现360桌面主题上的文件夹动画效果
- GridView的盲区
private ImageButton play1,pause1,stop1;
MediaPlayer player=new MediaPlayer();
private String path="/sdcard/music/奔.mp3";
private Button sousuo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play1=(ImageButton)findViewById(R.id.play);
pause1=(ImageButton)findViewById(R.id.pause);
stop1=(ImageButton)findViewById(R.id.stop);
sousuo=(Button)findViewById(R.id.sousuo);
play1.setEnabled(true);
pause1.setEnabled(false);
stop1.setEnabled(false);
setMedia();
play1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
playing();
}
});
stop1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
play1.setEnabled(true);
stop1.setEnabled(false);
pause1.setEnabled(false);
if(player.isPlaying()){
player.stop();
player.reset();
player.release();
}
}
});
pause1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
play1.setEnabled(true);
stop1.setEnabled(true);
pause1.setEnabled(false);
player.pause();
}
});
sousuo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("Audio/*");
startActivityForResult(intent, 0);
}
});
}
public void setMedia(){
try {
player.release();
player=new MediaPlayer();
//player.reset();
File file=new File(path);
FileInputStream fs=new FileInputStream(file.getAbsolutePath());
player.setDataSource(fs.getFD());
player.prepare();
} catch (IllegalArgumentException 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();
}
}
public void onActivityResult(int i,int b,Intent intent){
if(intent!=null){
Uri uri=intent.getData();
String p=uri.toString().substring(52);
System.out.println(p);
System.out.println("path="+path);
path=p;
setMedia();
System.out.println(path+"=path");
}
}
public void playing(){
if(path!=null&& !path.equals("")){
play1.setEnabled(false);
stop1.setEnabled(true);
pause1.setEnabled(true);
player.start();
}
}
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
player.release();
play1.setEnabled(true);
stop1.setEnabled(false);
pause1.setEnabled(false);
}
}不好意思、、、、、代码补上、
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
play1.setEnabled(true);
stop1.setEnabled(false);
pause1.setEnabled(false);
if(player.isPlaying()){
player.stop();
player.reset();
player.release();
}
}
});果然是逻辑错误 你的判断条件是if(player.isPlaying)
才会执行停止的一系列操作。
当你暂停的时候,player.isPlaying是false
所以根本不会执行停止操作,所以当你点暂停,再点停止的时候,是不会执行任何操作的。
修改一下你的判断条件吧。