在 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 秒后,音频将停止。
我是 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 秒后,音频将停止。