我收到了这段代码。
mp=MediaPlayer.create(this, R.raw.tdesert);
ImageButton ibtn1 = (ImageButton) findViewById(R.id.ibtn1);
ibtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mp2.isPlaying()){
mp2.pause();
mp2.seekTo(0);
}
if (mp3.isPlaying()){
mp3.pause();
mp3.seekTo(0);
}
if (mp4.isPlaying()){
mp4.pause();
mp4.seekTo(0);
}
if (mp5.isPlaying()){
mp5.pause();
mp5.seekTo(0);
}
if (mp6.isPlaying()){
mp6.pause();
mp6.seekTo(0);
}
if (mp.isPlaying()){
mp.pause();
mp.seekTo(0);
}
else{
mp.start();
}
}
});
但是当你有很多文件时使用它并不是那么好 我有64个文件,意思是64个媒体播放器,现在要为所有64个文件键入该代码,代码太长了。 有没有其他方法可以阻止媒体播放器相互叠加? 我正在使用ListView所以写所有64 Mp的代码将是..只是方式大。而且我担心这会降低应用程序速度或在设备上消耗太多空间。
答案 0 :(得分:1)
哇!媒体文件的数量不等于您应该使用的MediaPlayer
个实例的数量!那会非常耗费系统资源!使用单个MediaPlayer
并在该实例上使用方法setDataSource()
,然后使用prepare()
方法。完成特定媒体播放后,只需使用reset()
或stop()
方法即可。致电reset()
或stop()
后,您必须重新初始化同一MediaPlayer
个实例。
参见http://developer.android.com/reference/android/media/MediaPlayer.html#StateDiagram 有关您应该使用的各种方法的更多详细信息。