我想知道动态设置媒体播放器数据源的最佳方法是什么?我有一个充满了可以播放的不同mp3文件的微调器(目前大约9个左右),我还有一个选择时间的放射组应播放声音(4种可能的时间选项)。
无论如何都要提高效率,而不是让很多开关到位,可能会选择9首歌曲(一次一首)并以4种不同的长度播放,只是看起来不方便拥有所有这些切换语句。 / p>
s1.setOnItemSelectedListener(new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
int index = arg0.getSelectedItemPosition();
switch(index)
{
case 0: //would be 9 of these, represents the song choices
final MediaPlayer md = MediaPlayer.create(MainActivity.this, R.raw.song);
int id = rg.getCheckedRadioButtonId();
switch(id)
{
case R.id.radio0: // 4 of these for each song, representing play length
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (md.isPlaying()) {
md.pause();
btn.setText("Paused");
}
else {
md.start();
md.setLooping(true);
btn.setText("Playing");
}
}});
break;
}
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
答案 0 :(得分:0)
好的,您可以设置一个变量,单选按钮代表的时间量,然后创建一个postDelayed以在这段时间后停止mediaPlayer吗?
int timeTillStop = 15000;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
mp.stop;
}
}, timeTillStop );
现在你只需要计算9种声音中的哪一种?