【问题标题】:play an array of sounds and change the tempo using soundpool播放一系列声音并使用 soundpool 更改速度
【发布时间】:2016-03-13 10:23:21
【问题描述】:

我正在尝试开发一个应用程序,它可以连续播放预定义的声音数组之一,并使用 android 的 soundpool 类更改速度、音高(单独)等。

我知道如何改变声音的音高。

但我不知道如何演奏整个阵列以及整个阵列的节奏。

请帮忙!

提前谢谢你!

编辑:我想我必须使用 Handler 才能播放声音数组,但我不知道怎么做!

【问题讨论】:

    标签: android arrays android-handler soundpool android-audiomanager


    【解决方案1】:
    public class Sound {
    
    private static int length = 22050 * 10; //10 seconds long
    private static byte[] data = new byte[length];
    
    static void fillRandom() {
    new Random().nextBytes(data); //Create some random noise to listen to.
    }
    
    static void play() {
    
    fillRandom();
    
    final int TEST_SR = 22050; //This is from an example I found online.
    final int TEST_CONF = AudioFormat.CHANNEL_OUT_MONO;
    final int TEST_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
    final int TEST_MODE = AudioTrack.MODE_STATIC; //I need static mode.
    final int TEST_STREAM_TYPE = AudioManager.STREAM_ALARM;
    AudioTrack track = new AudioTrack(TEST_STREAM_TYPE, TEST_SR, TEST_CONF, TEST_FORMAT, length, TEST_MODE);
    track.write(data, 0, length);
    track.play();
    }
    }
    

    此代码播放一些随机噪音。您所要做的就是用您打算播放的正确音乐文件填充 byte[]data 数组......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多