Доброе время суток форумчане,
Для воспроизведения звука использую компонент NewAC. Т.к. я записываю аудио файл в БД, то перед этим, я его проверяю:
Код:
if OpenDialog1.Execute then
begin
MP3In1.FileName := OpenDialog1.FileName; //step 1
if not MP3In1.Valid then
begin
showmessage(C_audio_not_valid);
Exit;
end;
MP3In1.Free;
Взял стандартный код из примера компонента (за исключением последней строки).
И вот когда я записываю файл первый раз в БД, - все нормально.
Но последующие разы, программа выкидывает ошибку:
Debugger Exception Notification
Project PEng_gDB.exe raised exception class EAccessViolation with message 'Access violation at address 00538514 in module 'PEng_gDB.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.
Перед ошибкой, компилятор проходит «step 1», и выкидывает в файл («unit ACS_Classes») модуля компонента, на строку «step 2»:
Код:
procedure TAuFileIn.SetFileName;
begin
CloseFile; //step 2
// StartSample := 0;
// EndSample := -1;
FWideFileName := FN;
FFileName := FN;
end;
такое впечатление, как будто, я
забыл что-то закрыть.
Программа пример «MP3Player» (самого компонента), отрабатывает все на ура. Да и моя программа воспроизводит все файлы подряд.
А вот когда я проверяю файл (без воспроизведения) – летит ошибка.
Может кто-нибудь здесь подскажет, в чем заковыка?
Заранее спасибо.