Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование GRushControls с mmsystem


VoofT ©   (2006-08-17 21:37:00) 

Если запустить проигрывать mp3 командой mciSendString 1 раз, то все без проблем, но когда скомандуешь stop, close и заново open и play другого файла, то при наведении на кнопку вылетает с ошибкой 216


D[u]fa   (2006-08-22 17:55:00) [1]


> New(RetLn);
> - это из какой оперы? Сколько байт выделяется для PChar?
>  (И как только Delphi такое проглатывает).


ну скорей всего 4 как для указателя %) или же 1 как для Char %))


VoofT   (2006-08-21 22:09:00) [2]

Спасибо, что сказали про New(RetLn) - ее убрал, 128 поменял на 16, а RetLn объявил как array[1..16] of Char


VoofT   (2006-08-20 22:44:00) [3]

Хз, если честно. Я с памятью/указателями только после KOL пользоваться начал, поэтому и прописал это - без этого даже один раз пускаться не хотел.
Может, ее как-нибудь по-другому можно проинициализировать?


Vladimir Kladov   (2006-08-20 20:43:00) [4]

New(RetLn);
- это из какой оперы? Сколько байт выделяется для PChar? (И как только Delphi такое проглатывает).


VoofT   (2006-08-18 18:10:00) [5]

MediaFile = константа, отвечающая за название алиаса


VoofT   (2006-08-18 18:09:00) [6]

procedure TForm1.PlayMP3(FileName: string);
begin
 Time.Enabled := False;
 StopMP3();
 CloseMP3();
 OpenMP3(FileName);
 mciSendString('play ' + MediaFile, '', 0, 0);
 Time.Interval := GetMP3Length() + 1000;
 Time.Enabled := True;
end;

function TForm1.GetMp3Length(): integer;
var RetLn: PChar;
begin
 New(RetLn);
 mciSendString('status ' + MediaFile + ' length', RetLn, 128, 0);
 result := Str2Int(RetLn);
end;

procedure TForm1.StopMP3();
begin
 mciSendString('stop ' + MediaFile, '', 0, 0);
end;

procedure TForm1.OpenMP3(FileName: string);
var Line: string;
begin
 Line := 'open "' + FileName + '" type mpegvideo alias ' + MediaFile;
 mciSendString(PChar(Line), '', 0, 0);
end;

procedure TForm1.CloseMP3();
begin
 mciSendString('close ' + MediaFile, '', 0, 0);
end;

Один раз делаем PlayMP3 - нормально.
Второй - вылетает.


homm   (2006-08-18 08:37:00) [7]

Не сутьба хотябы код привести, не говоря уже о строчки в которой вылетае...


Наверх

Титульная страница Поиск, карта сайта Написать письмо