Форум программистов, компьютерный форум CyberForum.ru

Работа с Wav файлом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа читающая почту http://www.cyberforum.ru/cpp/thread1224741.html
Привет. Надумал такую идею. Есть почтовый ящик с кучей писем. Нужно из этого ящика скопировать в таблицу word дату, отправителя и название каждого письма. Ящик открывается в браузере(или если будет проще - в спец программе для чтения почты). Вопрос в том, что я не знаю какие для этого нужны средства. Собираюсь использовать c++, а что ещё нужно будет применить - не знаю. Буду рад, если доступно...
C++ Написать скрипт для игры WoW на проверку баффов из БД и сохранение их в отдельную таблицу помогите написать скрипт На проверку баффов из бд и сохранение их в отдельную таблицу. игра world of warcraft по типу этого bool Unit::HasAura(uint32 spellId, uint64 casterGUID, uint64 itemCasterGUID, uint8 reqEffMask) const { if (GetAuraApplication(spellId, casterGUID, itemCasterGUID, reqEffMask)) return true; return false; } ๖ۣۜNarko: AuraApplication *... http://www.cyberforum.ru/cpp/thread1224718.html
Написать функцию вычисляющую амплитудный спектр отсчетов звукового сигнала формата WAV C++
Нужно написать функцию вычисляющую амплитудный спектр отсчетов звукового сигнала формата WAV. Посоветуйте с чего начать выполнение задания, что изучить? на данный момент я пока понял, что нужно как-то использовать дискретное преобразование Фурье и теорему отсчетов
Большая загрузка при распознавании лиц с камеры C++
Всем привет. почти закончил писать программу и столкнулся с такой проблемой. Есть кусок когда, который отвечает за распоознование лиц с камеры void Faces(IplImage* frame1) { CascadeClassifier face_cascade("/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml"); Mat frame = frame1; Mat frame_gray; cvtColor(frame,frame_gray,CV_BGR2GRAY);
C++ Как скачать с базы данных sqllite нужные мне данные в структуру? http://www.cyberforum.ru/cpp/thread1224453.html
Подскажите пожалуйста, работаю через sqllite, как скачать с базы данных нужные мне данные, например в структуру rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg); static int callback(void *data, int argc, char **argv, char **azColName) // Выводит всё подряд и не записывает никуда { int i; while(i<argc) { printf("%s = %s\n", azColName, argv ? argv : "NULL");
C++ После сборки в Release краш с Access Violation Имеется Dll, собранная в Release /MT. На Win8 все прекрасно работает, а на 7ке крашится с исключением c0000005. Причем если запускать в режиме совместимости, то ошибка исчезает. А так же, когда меняю Runtime Library на /MTd, все опять же работает. Подскажите с чем это может быть связано и куда копать? Добавлено через 1 час 16 минут Ладно, поставим вопрос так: ничего страшного, если... подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2583 / 235
Регистрация: 01.11.2011
Сообщений: 6,375
Завершенные тесты: 1
09.07.2014, 15:58     Работа с Wav файлом
Цитата Сообщение от Myha_fly Посмотреть сообщение
Но я не понимаю, как узнать сколько их и какой размерности. То есть, нужно ли создавать для них массив и какой размерности. В каком формате данные. и в каком их лучше всего отправить на обработку
Волшебные картинки спешат на помощь:
Работа с Wav файлом

Общее число требуемых для создания массивов, по одному на каждый канал, равняется NumChannels. Соответственно для моноканала потребуется создать только один массив, для стереоканала - два, и так далее.
Subchunk2Size это общий размер всех-всех данных. Соответственно поделив это число на количество каналов узнаем сколько элементов должен содержать массив. Умножив это количество на размер одного элемента (BitPerSample) получим требуемый размер памяти под массив.

Сразу после шапки, каждый блок данных (размером BlockAlign) содержит строго по очереди одинаковые элементы каждого канала - то есть в первом блоке будет расположен первый элемент (chunk) первого канала, затем первый элемент второго канала. Во втором блоке данных - сначала второй элемент первого канала, затем второй элемент второго канала. И так далее. Для четырехканальной записи, каждый блок будет содержать ровно четыре значения. Для моноканала, соответственно, каждый блок данных будет размером с один элемент канала, то есть равен выбранной глубине звука.

P.S. Что-то я совсем забыл: BitPerSample нужно делить на 8, чтобы привести все к одной единице измерений. Собственно к байтам.
 
Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru