информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Задача утратила свою актуальность. Хоть до конца с ней и не разобрался, но тему закрываю. Всем спасибо за участие. 29.10.08 09:52  Число просмотров: 1468
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
<programming>
[C++] Как загрузить и обработать mp3? 09.10.08 11:33  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Скажите, есть ли возможность сделать такое попроще стандартными средствами Windows?

Про wav информацию нашёл - mmioRead мне помогла. А вот с mp3 проблемы. Нашёл в MSDN интерфейс IWMReader, но как его пользовать так и не понял.

Работаю под MS VS 6.0 и 7.1.
Задача утратила свою актуальность. Хоть до конца с ней и не разобрался, но тему закрываю. Всем спасибо за участие. 29.10.08 09:52  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Гнутая либа есть еще такая - mad -... 12.10.08 16:28  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Гнутая либа есть еще такая - mad - http://www.underbit.com/products/mad/
Ты насчёт чего? Какая библиотека гнутая? 12.10.08 17:16  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 12.10.08 17:18  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
гнутая - значит по лицензии GNU 12.10.08 17:20  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 12.10.08 17:25  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
гнутая - значит по лицензии GNU
библиотека - значит ее можно просто использовать вместо ковыряния исходного кода готового продукта
MAD - MPEG Audio Decoder
Но вобщем это дело твое - разбираться что это такое
А тут можно скачать в качестве примера исходники винампового mp3 декодера на ее основе, который я когда то переводил на новую версию этой либы и который по моему мнению декодит улчше оригинального декодера - http://www.killprog.com/mad_src.rar
Сдается мне, что самое простое 10.10.08 12:10  
Автор: Neznaika <Alex> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
это через Windows Media Player.

Во-первых, там всего несколько строчек получается
Во-2х, можно не париться насчет того, какой формат у аудио-файла
Ну и в-3х, Windows Media Player - он всегда есть
Media Player позволяет обрабатывать mp3 или только... 12.10.08 06:27  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Media Player позволяет обрабатывать mp3 или только проигрывать? Мне нужен доступ к бинарным данным
Ссылка на исходник CDexos: 09.10.08 17:41  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>


CDex release 170b2
И ещё один вопрос по поводу. Разве в mp3-формате звуковые... 10.10.08 02:50  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 10.10.08 02:56  Количество правок: 2
<"чистая" ссылка> <обсуждение закрыто>
И ещё один вопрос по поводу. Разве в mp3-формате звуковые данные хранятся в незапакованном виде?
В недрах файла AudioFile.cpp этой программы я нашёл код, который вроде бы призван декодировать файл:

	while ( dwSamplesToConvert > 0 )
	{
		// Determine how many byte to convert this time
		DWORD dwBlockSize = min( dwSamplesToConvert, BLOCKSIZE );
		
		// read chunck
		fread( gpsSamples, dwBlockSize, sizeof( BYTE ), fpIn );
		
		// And write the byte back to the file
		fwrite( gpsSamples, dwBlockSize, sizeof( BYTE ), fpOut );
		
		// Decrement the number of bytes to convert
		dwSamplesToConvert -= dwBlockSize;
	}

---

Отсюда видно, что вся декодеровка заключается в чтении и копировании. Или я что-то не так понял?
Может это чтение из временного, уже декодированного файла и запись в целевой? 10.10.08 14:11  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Вообще сам поток данных можно декодировать и ACM-ом 10.10.08 04:10  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
> Отсюда видно, что вся декодеровка заключается в чтении и
> копировании. Или я что-то не так понял?

Но mp3 хедер винда не понимает, насколько я знаю - придется самому искать
Заголовок-то понятно, что самому разобрать придётся. Благо в... 10.10.08 04:24  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Заголовок-то понятно, что самому разобрать придётся. Благо в инете информации по этому предостаточно. Мой вопрос касается самих звуковых данных. Они имеют тот же формат, что и в wav?
Да 10.10.08 12:44  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Я тут пример нашёл, который вроде бы мне подходит, но одна... 12.10.08 06:33  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 12.10.08 17:18  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Я тут пример нашёл, который вроде бы мне подходит, но одна проблема...
К бинарным данным доступ есть, но не могу найти сколько бит на один звуковой отсчёт приходится.
Вот ссылка на пример:
http://rapidshare.com/files/153138842/AudioPlayer.zip
Читает mp3 при помощи IWMReader. В callback функции onsample есть доступ к бинарным данным. Вот её кусок (находится в файле \audioplay.cpp)
    pwh->lpData = ( LPSTR )&pwh[1];
    pwh->dwBufferLength = cbData; 
    pwh->dwBytesRecorded = cbData;
    pwh->dwUser = ( DWORD )cnsSampleTime;
    pwh->dwLoops = 0;
    pwh->dwFlags = 0;
	
    CopyMemory( pwh->lpData, pData, cbData );

---
Как мне определить, сколько каналов у звука, и сколько бит на один отсчёт приходится? Т.е. те данные, которые присутствуют в заголовке wav.
Да вроде ACM-у скармливаешься весь поток, а он его сам режет или не так? 12.10.08 22:05  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 12.10.08 22:05  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Не знаю ACM, не ACM, но кто-то поток режет. В функцию OnSample данные поступают блоками. Но как определить нужные мне параметры? 13.10.08 02:41  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 13.10.08 02:41  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Спасибо, дядя волшебник. То что нужно. 09.10.08 19:28  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Спасибо, дядя волшебник. То что нужно.
Как я понял этот исходник для шестой студии написан?
Ноесть проблема - идёт обращение к библиотеке nafxcwd.lib, которого в составе шестой студии нет.

Он есть в составе студии 7.1, но при компиляции в ней другие проблемы вылазят. Можно как-нибудь библиотеку из 7.1 к 6.0 прикрутить?
На сколько я помню, lib можно получить из dll инструменом, который есть в составе VS 09.10.08 20:18  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Во первых это только в делфях (в vs тоже можно но чуть сложнее) 10.10.08 02:10  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Во вторых nafxcwd - это если я не ошибаюсь статический mfc. Не получится короче
И что это за инструмент? 10.10.08 01:56  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach