簡體   English   中英

向后播放WAV文件

[英]Play WAV file backward

我正在用Java 編寫Braid 如果您回放時間,聲音會向后播放。 如何向后播放WAV文件? 也許使用像previous()類的流? 在Braid的網站上你能看出我的意思嗎?

更新: 解決了! 看我自己的帖子。

YEEEEEEESSSSS !!!!!!!!

我自己解決了(14歲!!)
我寫過這堂課:

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);
    }
}

然后:

 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--;
 }

如果WAV包含PCM,則反轉PCM樣本的順序。 如果它包含一些其他格式,它可能會復雜得多; 可能最容易將它首先轉換為PCM。

有關WAV格式的更多信息,請訪問此站點

使用Windows錄音機(在開始 - >程序 - >附件 - >娛樂中)。

它有一個功能(效果(菜單) - >反轉)來反轉.WAV文件。 您可以使用其他名稱保存反轉文件,然后在程序中打開相應的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM