
对于我想要完成的任务,我还尝试了一个if语句,在这里我测试了,如果mp.isplaying(),并做了mp.stop,但是没有结果。所有这些都在项目的主类中。在oncreate方法中没有任何内容。
public class MainActivity extends AppCompatActivity {
MediaPlayer mp;
public void buttonTapped(View view){
int id = view.getId();
String ourId = "";
ourId = view.getResources().getResourceEntryName(id);
int resourceId = getResources().getIdentifier(ourId, "raw", getPackageName());
mp = MediaPlayer.create(this, resourceId);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
// Log.i("Stuff", viewId);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}}
发布于 2017-05-17 04:58:27
* *中的代码应该可以解决问题。
public void buttonTapped(View view){
int id = view.getId();
String ourId = "";
ourId = view.getResources().getResourceEntryName(id);
int resourceId = getResources().getIdentifier(ourId, "raw", getPackageName());
***if(mp!=null){
mp.release();
mp=null;
}***
mp = MediaPlayer.create(this, resourceId);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
// Log.i("Stuff", viewId);
}发布于 2017-05-16 18:11:44
在setOnCompletionListener中,您已经释放了mp,还添加了mp = null。
发布于 2017-05-17 04:45:46
试下代码:-
试一试 { mp.setDataSource(birdsUrlList.get(position).getUrl_audio());mp =新的MediaPlayer(); mp.prepare(); Mp.setOnPreparedListener(新MediaPlayer.OnPreparedListener() ){ @Override 公共无效onPrepared(MediaPlayer mp) { mp.start(); } }); Mp.setOnCompletionListener(新MediaPlayer.OnCompletionListener() ){ @Override 公共无效onCompletion(MediaPlayer mp) { mp.stop() mp.release(); } }); //startActivity(新意图( Uri.parse(birdsUrlList.get(position).getUrl_video())));}Intent.ACTION_VIEW)捕捉(异常e) { e.printStackTrace();}
https://stackoverflow.com/questions/44007509
复制相似问题