Воспроизведение двух аудио файлов в Android - PullRequest
3 голосов
/ 03 июня 2011

Я новичок в Android и пытаюсь разработать приложение, в котором я беру два музыкальных файла.Когда приложение запускает первую музыку, играет, и когда пользователь нажимает кнопку, вторая музыка играет, и первая музыка должна постепенно исчезать.

Я попробовал это, но в итоге я проиграл два музыкальных файла один за другимдругой.Я не могу понять, как добиться эффекта затухания.

Вот мой пример кода

package com.Audio;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;

public class DemoAudio extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        MediaPlayer mp=MediaPlayer.create(getBaseContext(), R.raw.fruit_dance);
        mp.start();
        mp.setVolume(1.0f, 1.0f);

        Button btn=(Button) findViewById(R.id.xBtn);
        btn.setOnTouchListener(new OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent event){
                if(event.getAction()==MotionEvent.ACTION_DOWN){
                    final MediaPlayer mp1=MediaPlayer.create(getBaseContext(), R.raw.futurebells_full);
                    mp1.start();
                    mp1.setVolume(5.0f, 5.0f);
                }
                return true;
            }
        });
     }

}

Любая помощь будет оценена.Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Я получил ответ за это. Я создал два отдельных объекта для MediaPlayer и, используя некоторые методы, я настроил их громкость первой музыкой, чтобы понизить высоту, и второй, чтобы увеличить высоту, и это то, что я хотел.

Этого можно добиться, используя потоки, кажется, что он работает лучше, чем непосредственно задавая громкость.

1 голос
/ 04 июня 2011

Два файла могут воспроизводиться одновременно, если используются потоки Java. Запустите ваши объекты MediaPlayer в двух разных потоках. Всегда используйте потоки для не связанных с пользовательским интерфейсом вещей.

1 голос
/ 04 июня 2011

см. постепенное исчезновение Я думаю, что это похоже на вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...