溫馨提示×

C++中怎么讀取音頻文件數(shù)據(jù)

c++
小億
183
2024-04-15 16:41:10
欄目: 編程語言

在C++中讀取音頻文件數(shù)據(jù)通常使用專門的音頻處理庫,比如libsndfile、libsndfile或者ffmpeg等。以下是一個使用libsndfile庫來讀取音頻文件數(shù)據(jù)的示例代碼:

#include <iostream>
#include <sndfile.h>

int main() {
    // 打開音頻文件
    SNDFILE* sndfile = sf_open("audio.wav", SFM_READ, NULL);
    if (!sndfile) {
        std::cerr << "Error opening file" << std::endl;
        return 1;
    }

    // 獲取音頻文件信息
    SF_INFO info;
    sf_command(sndfile, SFC_GET_CURRENT_SF_INFO, &info, sizeof(info));

    // 讀取音頻數(shù)據(jù)
    const int num_samples = info.frames * info.channels;
    float* data = new float[num_samples];
    sf_read_float(sndfile, data, num_samples);

    // 輸出音頻數(shù)據(jù)
    for (int i = 0; i < num_samples; i++) {
        std::cout << data[i] << " ";
    }

    // 釋放資源
    delete[] data;
    sf_close(sndfile);

    return 0;
}

在這個示例中,我們使用libsndfile庫來打開一個音頻文件(“audio.wav”),讀取音頻數(shù)據(jù),并輸出到控制臺。請確保將libsndfile庫正確鏈接到您的項目中,并根據(jù)您的實際情況修改文件路徑和音頻數(shù)據(jù)處理邏輯。

0