0

我想知道动态设置媒体播放器数据源的最佳方法是什么?我有一个可以播放不同 mp3 文件的微调器(目前大约 9 个左右),我还有一个无线电组可以选择声音的时间播放(4 个可能的时间选项)。

有没有办法让这更有效,而不是设置很多开关,9 首歌曲可能会被选择(一次一首)并以 4 种不同的长度播放,只是拥有所有这些 switch 语句似乎很笨拙。

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

            }
        });
4

1 回答 1

0

好的,您可以设置一个变量来表示单选按钮所代表的时间量,然后创建一个 postDelayed 以在该时间量之后停止 mediaPlayer 吗?

    int timeTillStop = 15000;

    Handler handler = new Handler();

    handler.postDelayed(new Runnable() {
          public void run() {
            mp.stop;
          }
       }, timeTillStop );

现在您只需要确定播放 9 种声音中的哪一种?

于 2012-08-14T02:25:21.237 回答