Lazarus и открытие аудиофайлов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Lazarus и открытие аудиофайлов

Сообщение vadv55 » 16.01.2014 14:36:31

При попытке открыть в консольной программе Lazarus аудиофайла .wav с помощью оператора Reset на экран выдаётся следующее сообщение:
Проект ... вызвал класс исключения 'RunError(2)'
В то же время, если удалить заголовочную часть wav-файла (первые 40 байтов), то он успешно открывается и обрабатывается. Чем вызвано подобное поведение программы в среде Lazarus, ведь в других средах такого обычно не происходит? Заранее благодарю за любой совет по данному поводу.
vadv55
новенький
 
Сообщения: 27
Зарегистрирован: 16.01.2014 14:08:12

Re: Lazarus и открытие аудиофайлов

Сообщение SSerge » 16.01.2014 15:23:36

Пример проблемного кода, пожалуйста, приведите.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus и открытие аудиофайлов

Сообщение hinst » 16.01.2014 15:33:55

Если задача в том чтобы просто проигрывать аудиофайлы (а не написать декодер а также перенаправитель на устройство вывода самому с нуля в каких-нибудь учебных целях) то вот рекомендую попробовать:
"United Open-libraries of Sound" для FreePascal
http://fredvs.github.io/uos/
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Lazarus и открытие аудиофайлов

Сообщение vadv55 » 16.01.2014 15:51:41

Спасибо за ответы. Пример проблемного кода:

var
F: File;
buf: Char;

{$R *.res}

begin
AssignFile(F,'zvuk0.wav');
Reset(F,1);
Seek(F,45);
BlockRead(F,buf,1);
. . .
CloseFile(F)
end.

Задача состоит в анализе и обработке данных аудиофайлов.
vadv55
новенький
 
Сообщения: 27
Зарегистрирован: 16.01.2014 14:08:12

Re: Lazarus и открытие аудиофайлов

Сообщение SSerge » 17.01.2014 17:49:04

А у вас там атрибут read only случайно на файлах не стоит? :roll:

А то у freepascal есть такая подлость: режим открытия нетипизированных файлов зависит от содержимого константы filemode. По умолчанию, оно 2, что соответствует режиму read/write. Соответственно, если файл read only, подобное открытие завершается через exception. Нужно перед открытием filemode присвоить режим read only, imho это ноль.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Lazarus и открытие аудиофайлов

Сообщение vadv55 » 18.01.2014 13:34:45

Большое спасибо за ответ. При проверке оказалось, что значение переменной FileMode никак не влияет на открытие wav-файла, и тем не менее, после ряда переименований, он наконец-то стал открываться. Поэтому, скорее всего, wav-файл нельзя было открыть вследствие системного сбоя при сортировке файлов в домашнем каталоге, и его заголовок здесь совершенно ни при чём.
vadv55
новенький
 
Сообщения: 27
Зарегистрирован: 16.01.2014 14:08:12


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 231

Рейтинг@Mail.ru