簡體   English   中英

將原始字節數據轉換為音頻

[英]Converting raw byte data to audio

在我的應用程序中,我想將原始字節數據更改為音頻。 因此,首先,我接收到數據並將其添加到字節數組列表中,然后我想將整個數組列表更改為音頻。 由於數據是通過音頻插孔輸出的,如果您讓我知道哪種音頻格式合適(wav,3gp等),將不勝感激。 另外,我在將這些數據保存到文件中時遇到問題。 這是我的代碼。 在fileOuputStream.write(audiod.toArray())行中,它給出了一個錯誤,並要求我將audiod的類型更改為byte。

private static ArrayList<Byte> audiod = new ArrayList<Byte>();
audioFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myaudio.wav";

if (dg == 1) {
    //audiod.append(data[i]);
    for (int i = 0; data != null && i < data.length; i++) {
        audiod.add(data[i]);
    }
    if (stt.equalsIgnoreCase(("r"))) {
        dg = 0;
        recordButton.setEnabled(true);
        File file = new File(audioFilePath);
        try {
            FileOutputStream fileOuputStream = new FileOutputStream(audioFilePath);
            fileOuputStream.write( audiod.toArray());
            fileOuputStream.close();
            System.out.println("Done");
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

audiod.toArray()將為您提供Byte[] ,但是您需要一個byte[] 在Java中,原始數據類型有所謂的包裝器類。 Byte是保存byte值的對象。

為什么要使用Byte列表? 它比您似乎擁有的簡單byte[]data )需要更多的內存。

數據格式(wav,3gp等)取決於您如何獲取數據。

暫無
暫無

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

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