有没有其他方法可以阻止媒体播放器在彼此之上播放?

时间:2014-02-09 12:03:48

标签: android media-player

我收到了这段代码。

    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的代码将是..只是方式大。而且我担心这会降低应用程序速度或在设备上消耗太多空间。

1 个答案:

答案 0 :(得分:1)

哇!媒体文件的数量等于您应该使用的MediaPlayer个实例的数量!那会非常耗费系统资源!使用单个MediaPlayer并在该实例上使用方法setDataSource(),然后使用prepare()方法。完成特定媒体播放后,只需使用reset()stop()方法即可。致电reset()stop()后,您必须重新初始化同一MediaPlayer个实例。

参见http://developer.android.com/reference/android/media/MediaPlayer.html#StateDiagram 有关您应该使用的各种方法的更多详细信息。