Play WAV file backward

后端 未结 3 345
滥情空心
滥情空心 2020-11-30 08:39

I\'m making Braid in Java. If you rewind the time, the sound plays backward. How to play a WAV file backwards? Maybe with a stream with something like previous()

相关标签:
3条回答
  • 2020-11-30 09:13

    YEEEEEEESSSSS!!!!!!!!

    I solved it by myself (14 years old!!)
    I've written this class:

    import java.io.IOException;
    import javax.sound.sampled.AudioInputStream;
    
    /**
     *
     * @author Martijn
     */
    public class FrameBuffer {
    
        private byte[][] frames;
        private int frameSize;
    
        public FrameBuffer(AudioInputStream stream) throws IOException {
            readFrames(stream);
        }
    
        public byte[] getFrame(int i) {
            return frames[i];
        }
    
        public int numberFrames()
        {
            return frames.length;
        }
    
        public int frameSize()
        {
            return frameSize;
        }
    
        private void readFrames(AudioInputStream stream) throws IOException {
            frameSize = stream.getFormat().getFrameSize();
            frames = new byte[stream.available() / frameSize][frameSize];
            int i = 0;
            for (; i < frames.length; i++)
            {
                byte[] frame = new byte[frameSize];
                int numBytes = stream.read(frame, 0, frameSize);
                if (numBytes == -1)
                {
                    break;
                }
                frames[i] = frame;
            }
            System.out.println("FrameSize = " + frameSize);
            System.out.println("Number frames = " + frames.length);
            System.out.println("Number frames read = " + i);
        }
    }
    

    And then:

     FrameBuffer frameStream = new FrameBuffer(austream); //austream is the audiostream
     int frame = frameStream.numberFrames() - 1;
     while (frame >= 0) {
          auline.write(frameStream.getFrame(frame), 0, frameStream.frameSize());
          frame--;
     }
    
    0 讨论(0)
  • 2020-11-30 09:26

    If the WAV contains PCM, reverse the order of the PCM samples. If it contains some other format it can be a lot more complex; probably easiest to just convert it to PCM first.

    For more information on the WAV format, see this site.

    0 讨论(0)
  • 2020-11-30 09:29

    Use Windows Sound Recorder (in Start --> Programs --> Accessories --> Entertainment).

    It has a feature (Effects (menu) --> Reverse) to reverse a .WAV file. You could save the reversed file with a different name, and then open the appropriate one in your program.

    0 讨论(0)
提交回复
热议问题