【问题标题】:Play two sound with onClick [duplicate]用onClick播放两个声音[重复]
【发布时间】:2013-06-13 16:06:17
【问题描述】:

我想在用户点击按钮时播放两个不同的声音文件

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        playSound(this,R.raw.s1);
        playSound(this,R.raw.s2);

    }

    public static void playSound(Context context, int soundID){      
        MediaPlayer mp = MediaPlayer.create(context, soundID); 
        mp.start();
        }

这个代码的问题是 s1 和 s2 文件同时播放,我想播放 s1 然后如果 s1 完成播放 s2 文件,我该怎么做?

【问题讨论】:

标签: android audio media-player


【解决方案1】:

试试这个:

int[] sounds = new int[] {R.raw.s1, R.raw.s2};    
int counter = 0;

@Override
public void onClick(View v) {
    playSound(sounds[counter]);
}

public void playSound(Context context, int soundID){      
    MediaPlayer mp = MediaPlayer.create(context, soundID); 
    mp.setOnCompletionListener(this);
    mp.start();
}

@Override
public void onCompletion(MediaPlayer mp) {
    counter++;
    if (counter < sounds.length) {   
        playSound(sounds[counter]);
    }
}

不是我写过的最优雅的东西,但它应该满足你的要求。

【讨论】:

    【解决方案2】:

    试试这个:

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        MediaPlayer mp = MediaPlayer.create(context,R.raw.s1); 
        mp.start();
        mp.setOnCompletionListener(new OnCompletionListener() 
        {
            public void onCompletion(MediaPlayer mp2){   
    
                mp2 = MediaPlayer.create(context,R.raw.s2); 
                mp2.start();
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2013-02-01
      • 1970-01-01
      • 2011-05-20
      相关资源
      最近更新 更多