在安卓系统中播放两个音频文件

3

我是一名新手安卓开发者,正在尝试开发一个应用程序,其中需要播放两个音乐文件。当应用程序启动时,第一首音乐会播放,当用户点击按钮时,第二首音乐会播放,同时第一首音乐会缓慢地淡出。

我已经尝试过了,但最终只能播放两个音乐文件。我无法想象如何实现淡出效果。

以下是我的示例代码:

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

我已经得到了答案。我创建了两个单独的MediaPlayer对象,通过使用一些方法来调整它们的音量,第一首音乐降低音调,第二首音乐提高音调,这正是我想要的。

使用线程可以很好地实现这一点,似乎比直接设置音量更有效。


1

看一下淡入淡出,我觉得它和你的问题很相似。


1

如果使用Java线程,可以同时播放两个文件。在两个不同的线程中启动您的MediaPlayer对象。始终为非UI相关的内容使用线程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接