Во время воспроизведение mp3 файла, каждый раз в разное время от 20 секунд до 5-10 минут приложение падает. Текст ошибки:
"Неустранимая ошибка. Приложение выполнило недопустимую операцию и будет закрыто. Если неполадки повторятся, обратитесь к изготовителю программы.
Exception 0xproject1.eхe "
X32 Windows does not have this problem
example: http://pbcdod.ru/basserror.zip

the program code:
- Код: Выделить всё
unit Unit1;
{$mode delphi}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, bass;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
track:integer;
Channel: DWORD;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
BASS_Init(-1, 44100, 0, nil, nil);
track:=1;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
TrackLen, TrackPos: Double;
ValPos: Double;
ValLen: Double;
begin
TrackPos:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetPosition(Channel,0));
TrackLen:=BASS_ChannelBytes2Seconds(Channel, BASS_ChannelGetLength(Channel,0));
ValPos:=TrackPos / (24 * 3600);
ValLen:=TrackLen / (24 * 3600);
Label1.Caption:=FormatDateTime('hh:mm:ss',ValPos);
Label2.Caption:=FormatDateTime('hh:mm:ss',ValLen);
if BASS_ChannelIsActive(channel)=BASS_ACTIVE_STOPPED then begin inc(track); if track>2 then track:=1; player; end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BASS_ChannelStop(Channel);
BASS_StreamFree(Channel);
Channel := BASS_StreamCreateFile(false, PChar(ExtractFilePath(ParamStr(0))+inttostr(track)+'.mp3'), 0, 0, 0 );
BASS_ChannelPlay(Channel, False);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
BASS_ChannelPause(Channel);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
BASS_ChannelStop(Channel);
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Bass_Stop();
BASS_StreamFree(channel);
Bass_Free;
end;
end.
Помогите решить проблему.
Как можно отследить в wince где именно выходит ошибка? Была у кого-нибудь подобная проблема и как ее решали?