在android中播放两个音频文件

Posted

技术标签:

【中文标题】在android中播放两个音频文件【英文标题】:Playing two audio files In android 【发布时间】:2011-06-03 06:51:31 【问题描述】:

我是 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;
            
        );
     


任何帮助将不胜感激。非常感谢。

【问题讨论】:

【参考方案1】:

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

这可以通过使用线程来很好地实现,它似乎比直接设置音量更好。

【讨论】:

【参考方案2】:

看到它fade-in-out 我认为这与您的问题相似。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在android中播放两个音频文件的主要内容,如果未能解决你的问题,请参考以下文章

Android使用FFmpeg播放视频(二):音频播放

在 Android 中使用 MediaPlayer 播放音频文件

如何在 Android 中播放音频文件?

Android多媒体之音频播放

Android多媒体之音频播放

在android中一起播放音频视频