0

res フォルダーに 2 つの曲があります。1 つを使用してそれらを再生する方法mediaplayer

このコードを 2 つの異なる曲に使用しました。1 つのメディアプレーヤーを使用して曲を再生するにはどうすればよいですか

public class Nationalanthem extends Activity{

int songs[]={R.drawable.inno,R.drawable.vandemataram};
MediaPlayer mp;
ImageButton play,stop,b1,b2,back,exit,b3;
//Button back,exit;
MediaPlayer mediaPlayer,mediaplayer1;
RadioGroup rg;
RadioButton van,jana;
@Override

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.natinal_play);



         mp=new MediaPlayer();
         back=(ImageButton)findViewById(R.id.imageButton6);
         exit=(ImageButton)findViewById(R.id.imageButton5);

         b1=(ImageButton)findViewById(R.id.imageButton3);
         b2=(ImageButton)findViewById(R.id.imageButton2);
         b3=(ImageButton)findViewById(R.id.exitbton);
         rg=(RadioGroup)findViewById(R.id.radioGroup1);
         van=(RadioButton)findViewById(R.id.radiov);
         jana=(RadioButton)findViewById(R.id.Radioja);

         //mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
         //mediaplayer1 = MediaPlayer.create(getApplicationContext(),R.drawable.vandemataram);



     b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub                                  
                rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        // TODO Auto-generated method stub
                        if (mediaPlayer != null)
                           // mediaPlayer.reset();
                        switch (checkedId) {
                        case R.id.radiov:
                            mediaPlayer = MediaPlayer.create(getApplicationContext(),songs[0]);
                            mediaPlayer.start();
                            break;
                        case R.id.Radioja:
                            mediaPlayer = MediaPlayer.create(getApplicationContext(),songs[1]);
                            mediaPlayer.start();
                            break;
                        default:
                            break;
                        }



                    }
                });

            }
        });

         b2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //mediaPlayer.release();
                mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
            }
        });

         b3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                mediaPlayer.pause();
                //mediaplayer1.pause();
            }
        });

back.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        //mediaplayer1.stop();

        mediaPlayer.stop();
        mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
    Intent i2= new Intent(getApplicationContext(),Second.class);
    startActivity(i2);
    //finish();
    }
}); 
exit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        //mediaplayer1.stop();

        AlertDialog.Builder altert =new AlertDialog.Builder(Nationalanthem.this);
        altert.setTitle("Exit");
        altert.setIcon(R.drawable.ic_launcher);
        altert.setMessage("Are you sure want to exit");
        altert.setPositiveButton("Yes",new DialogInterface.OnClickListener()
        { 
            public void onClick(DialogInterface dialog, int which)
        {
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                intent.addCategory(Intent.CATEGORY_HOME);   
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                finish();
                startActivity(intent);
                mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
                mediaplayer1.stop();
                mediaplayer1 = MediaPlayer.create(getApplicationContext(),R.drawable.vandemataram);     

        }

        });

        altert.setNegativeButton("No",new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                //Toast.makeText(getApplicationContext(), "this is delete",Toast.LENGTH_LONG).show();

            }
        });

        altert.show();
            //System.exit(0);
    }


});



}


}

曲を聞くことができません。音が出ません。

4

3 に答える 3

1

ドキュメントでわかるように、 を使用reset()して、メディア プレーヤーを初期状態に戻すことができます。

于 2013-09-17T06:25:34.980 に答える
1

ファイルをassetディレクトリに配置し、File.listFiles()メソッドを使用してファイルのリストを取得できます。次に、これを使用します。

for (File file : files) {
    AssetFileDescriptor afd = getAssets().openFd(file.getName());
    player = new MediaPlayer();
    player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
    player.prepare();
    player.start();
    // Do other tasks
}

詳細については、こちらをご覧ください

于 2013-09-17T06:26:50.117 に答える
0

このコードを試してください

Integer songs[]={R.drawable.inno,R.drawable.rock,R.drawable.hello};

next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer = MediaPlayer.create(getApplicationContext(),song[index]);
            mediaPlayer.start();

        }
    });

編集- RadioGroup の使用

radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            if (mediaPlayer != null)
                mediaPlayer.reset();
            switch (checkedId) {
            case R.id.radiov:
                mediaPlayer = MediaPlayer.create(getApplicationContext(),song[0]);
                mediaPlayer.start();
                break;
            case R.id.Radioja:
                mediaPlayer = MediaPlayer.create(getApplicationContext(),song[1]);
                mediaPlayer.start();
                break;
            default:
                break;
            }



        }
    });
于 2013-09-17T06:31:36.463 に答える