Показать сообщение отдельно
  #1  
Старый 27.04.2015, 01:40
Konstantin-78 Konstantin-78 вне форума
Новичок
 
Регистрация: 27.04.2015
Сообщения: 76
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Вылетает ошибка при повторной проверке аудио файла компонентом NewAC

Доброе время суток форумчане,
Для воспроизведения звука использую компонент 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» (самого компонента), отрабатывает все на ура. Да и моя программа воспроизводит все файлы подряд.
А вот когда я проверяю файл (без воспроизведения) – летит ошибка.
Может кто-нибудь здесь подскажет, в чем заковыка?

Заранее спасибо.
Ответить с цитированием