在 Android 中播放给定时间的音频

Playing audio for given amount of time in Android

我是 Android 开发新手。

在此应用程序中,我希望音频播放一定时间(比如 20 秒)。 20 秒后它不应该开始播放。我使用了 getDuration() 方法,但我没有得到我需要的东西。

代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    Button button1=(Button)findViewById(R.id.button1);
    Button button2=(Button)findViewById(R.id.button2);
    button1.setOnClickListener(this);
    button2.setOnClickListener(this);
}

public void onClick(View v) {
    int resId;
    switch (v.getId()) {
    case R.id.button1:
        resId = R.raw.a;
        break;
    case R.id.button2:
        resId = R.raw.b;
        break;
    default:
        resId = R.raw.a;
        break;
    }
    // Release any resources from previous MediaPlayer
    if (mp != null) {
        mp.release();
    }

    mp = MediaPlayer.create(this, resId);
    mp.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
protected void onDestroy() {
    if(null!=mp){
        mp.release();
    }
    super.onDestroy();
}

这样试试:

mp.start();
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        mp.stop();
    }
}, 20 * 1000);

20 秒后,音频将停止。