![]() |
|
|
#1
|
|||
|
|||
|
Не могу разобраться с программой! Вроде бы все компиляцию проходит, НО видеофайл не проигрывается. Хочу чтобы проигрывание зависело от текста вводимого в edit! Вот мой код!
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, WMPLib_TLB, ExtCtrls, ComCtrls,
ACTIVELISTENPROJECTLib_TLB;
type
TForm1 = class(TForm)
WindowsMediaPlayer1: TWindowsMediaPlayer;
Button1: TButton;
Timer1: TTimer;
Edit1: TEdit;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Edit1Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
WindowsMediaPlayer1.URL:='E:\777.avi';
WindowsMediaPlayer1.Controls.currentPosition:=0;
WindowsMediaPlayer1.Controls.play;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (WindowsMediaPlayer1.Controls.currentPosition = 7) then
WindowsMediaPlayer1.Controls.currentPosition := 0;
WindowsMediaPlayer1.Controls.play;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if Edit1.Text='Цель' then
begin
WindowsMediaPlayer1.Controls.currentPosition:=0;
WindowsMediaPlayer1.Controls.play;
WindowsMediaPlayer1.URL:='E:\777' end
else
WindowsMediaPlayer1.URL:='E:\999.avi'
end;
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Edit1.Clear();
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.text<>' ' then Button4.Enabled:=true else Button1.Enabled:=false;
end;
end.Последний раз редактировалось Admin, 17.01.2014 в 19:59. |
|
#2
|
||||
|
||||
|
Открывать файл с диска в WindowsMediaPlayer1 нужно так:
WindowsMediaPlayer1.DefaultInterface.URL:='E:\777. avi'; WindowsMediaPlayer1.controls.play; |
|
#3
|
|||
|
|||
|
Не помогло! Результат такой же!
|
|
#4
|
||||
|
||||
|
Проверь свой код, у меня все работает.
Где именно не работает, если на кнопке Button4, то у тебя там ошибки: пропущено расширение файла в строке 'E:\777' (должно быть 'E:\777.avi') и в else добавь WindowsMediaPlayer1.Controls.play; и все должно работать. |
|
#5
|
|||
|
|||
|
Убрал вообще все что связано с edit и точно - проблема в button4. До этого все работало. Что здесь может быть не так(((( не пойму
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (WindowsMediaPlayer1.Controls.currentPosition = 7) then
WindowsMediaPlayer1.Controls.currentPosition := 0;
WindowsMediaPlayer1.Controls.play;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
WindowsMediaPlayer1.Controls.play;
WindowsMediaPlayer1.URL:='E:\777.avi'
end;
end.Последний раз редактировалось M.A.D.M.A.N., 19.01.2014 в 17:54. |
|
#6
|
||||
|
||||
|
Убери Timer и отслеживай изменение позиции плеера, через событие OnPositionChange (WindowsMediaPlayer1)
Вот код: Код:
procedure TForm1.WindowsMediaPlayer1PositionChange(ASender: TObject;
oldPosition, newPosition: Double);
begin
if (newPosition = 7) then
begin
WindowsMediaPlayer1.controls.currentPosition := 0;
WindowsMediaPlayer1.Controls.play;
end;
end; |
|
#7
|
||||
|
||||
|
Cобытие OnPositionChange наступает только если пользователь сам (кликом по контролам управления) меняет позицию.
Скорее всего это тебе неподойдет, вообще currentPosition у WindowsMediaPlayer1 типа Double(Тип с плавающей запятой, поддерживающий приблизительно 15 цифр точности) а это значит что ты никогда не получишь currentPosition = 7 от этого у тебя и все проблемы, мой вариант (рабочий проверял) в Timer'е прописать следующий код (Timer1.Interval:=10): Код:
Label1.Caption:=FormatFloat('#',WindowsMediaPlayer1.controls.currentPosition);//выводим Double без цифр после запятой и переводим в string
if Label1.Caption = '7' then //проверяем значение(теперь string'овое)
WindowsMediaPlayer1.controls.currentPosition:=0;//установливаем в начало |
|
#8
|
|||
|
|||
|
Проект вышел, но переход от файла к файлу долгий! Нужно чтобы не заметно было! Объединил 2 видео и написал код. Не выходит(
|
|
#9
|
||||
|
||||
|
Цитата:
|
|
#10
|
|||
|
|||
|
А можешь посоветовать чем воспользоваться? Просто я уже зе*ался с этой библиотекой
, в проекте есть 4 плей листа куда добавляются видео записи с опр разрешением(воспроизводиться на 4 разных панелях), всё проигрывается, но вот заставить при поставленной галочке зацикливать видео никак не получается, а если и выходит, то ошибки при доступе к памяти... |