如何动态设置mediaplayer源?

时间:2012-08-14 01:58:48

标签: android adt

我想知道动态设置媒体播放器数据源的最佳方法是什么?我有一个充满了可以播放的不同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

            }
        });

1 个答案:

答案 0 :(得分:0)

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

    int timeTillStop = 15000;

    Handler handler = new Handler();

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

现在你只需要计算9种声音中的哪一种?