Я пытаюсь загрузить WAV-файл в приложение C++
Программа продолжает печатать неверный WAV-файл с кодом завершения 5. Это означает, что программа думает, что chunkID не соответствует RIFF или формат не соответствует WAVE.
как это исправить?
это то, что у меня сейчас есть в моем коде.
класс 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
Почему он не может обнаружить WAVE или RIFF? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение