java - 合并两个音频文件

标签 java android audio

我是java新手。我尝试将它们一一播放,但出现错误。 如何将两个音频文件合并为一个?请帮帮我。如果用户输入不同的文本,它应该播放不同的声音。我知道声音开始之间应该有一些停顿,但我该怎么做呢?另外,我可以组合每个字母的所有声音,然后播放整个声音吗?

setContentView(R.layout.main);
    Button bStart = (Button) findViewById(R.id.bStart);
    final EditText etStart = (EditText) findViewById(R.id.etStart);
    final EditText etFinish = (EditText) findViewById(R.id.etFinish);
    final char[] arr = etStart.getText().toString().toCharArray();
    final MediaPlayer as = MediaPlayer.create(R2d2Activity.this, R.raw.as);
    final MediaPlayer bs = MediaPlayer.create(R2d2Activity.this, R.raw.bs);
    final SoundPool sp;
    final int a;
    sp = new SoundPool(2, AudioManager.STREAM_MUSIC, 0);
    a = sp.load(this, R.raw.as, 1);
    bStart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            for (int i=0; i<1; i++){
                String value = etStart.getText().toString();
                String first = value.substring(i, i + 1);
                if(first.contentEquals("a")){
                sp.play(a, 100, 100, 0, 0, 1);
                }if(first.contentEquals("b")){
                sp.play(b, 100, 100, 0, 0, 1);
                }
            }

最佳答案

根据您的评论,我认为您应该阅读 SoundPool 文档:

http://developer.android.com/reference/android/media/SoundPool.html

final void pause(int streamID); // Pause a playback stream.

应该对你有帮助。

<小时/>

已编辑: 如果您想强制程序暂停所有声音,那么您可以将声音播放分离到独立线程。只需在一段时间内让您的线程 hibernate 即可。

关于java - 合并两个音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898174/

相关文章:

java - 如何显示带有两位小数的带有美元货币值(value)的字符串

java - && (AND) 和 || (OR) 在 IF 语句中

java - Android启动Service的一个方面

java - 循环TextView并设置大小

c++ - 使用 QAudioOutput 进行实时流式传输

java - 打印不带括号和逗号的数组

Java:即使存在构造函数方法,类 Rectangle 中的构造函数 Rectangle 也无法应用于给定类型?

java - 我无法读取用户存储,

android - 从Android上的 Assets 读取音频文件

c# - 使用 SAPI(Microsoft 文本到语音 API)中的 Speechlib 作为 Unity AudioSource