Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | |
Я тут пример нашёл, который вроде бы мне подходит, но одна... 12.10.08 06:33 Число просмотров: 1568
Автор: 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.
|
<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
|
|
| |
Ты насчёт чего? Какая библиотека гнутая? 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
|
|
|
|