Почему он не может обнаружить WAVE или RIFF?C++

Программы на C++. Форум разработчиков
Anonymous
Почему он не может обнаружить WAVE или RIFF?

Сообщение Anonymous »

Я пытаюсь загрузить WAV-файл в приложение C++
Программа продолжает печатать неверный WAV-файл с кодом завершения 5. Это означает, что программа не думал, что chunkID соответствует WAVE или RIFF.
как это исправить?
вот что в настоящее время у меня в коде
класс WAV_Decoder отвечает за загрузку файла, затем обработку
заголовка WAV и затем сохранение файла в массиве, который я могу позже использовать в приложении, но проблема в том, что файл WAV обрабатывается как недопустимый формат
хотя файл WAV не поврежден и без проблем воспроизводится на моем устройстве с помощью медиаплеера
WAV_Decoder .hpp
#pragma once

struct WAV_Header
{
char chunkID[4];
uint32_t chunkSize;
char format[4];
char subchunk1ID[4];
uint32_t subchunk1Size;
uint16_t audioFormat;
uint16_t numChannels;
uint32_t sampleRate;
uint32_t byteRate;
uint16_t blockAlign;
uint16_t bitsPerSample;
char subchunk2ID[4];
uint32_t subchunk2Size;
};

class WAV_Decoder
{
private:

public:
WAV_Decoder() = default;
void LoadWav(std::string filename);

std::vector& getAudioBuffer();
private:
std::vector audio_buffer;
WAV_Header wav_header;
};

WAV_Decoder.cpp
#include
#include
#include

#include "TTS/WAV_Decoder.hpp"

void WAV_Decoder::LoadWav(std::string filename)
{
std::ifstream file(filename.c_str(), std::ios::binary);
if (!file)
{
std::cerr

Подробнее здесь: https://stackoverflow.com/questions/782 ... ve-or-riff

Вернуться в «C++»