Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
дмитрий 96
0 / 0 / 1
Регистрация: 27.06.2013
Сообщений: 127
1

Видео MP4

01.05.2015, 18:28. Просмотров 1389. Ответов 1
Метки нет (Все метки)

Срочно!! как в делпфи открыть формат MP4
Есть такой проигрыватель но он не открывает MP4. какой код нужно внести чтобы открывал?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
unit MediaWMV;
 
//  MediaWMV - v1.0 2012 Июнь
 
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, MPlayer, StdCtrls, ComCtrls, mmsystem, sSkinManager;
const
WMVOpenDialogTypes = 'Windows Media Files (AVI WMV WMA MP3 WAV) |*.avi;*.wmv;*.wma;*.mp3;*.wav';
b_time_rz = ':';
audio = 'Audio File';
avi_const = 0.7; // множитель времени AVI файлов. Точно не известно какой надо
// выставляйте сами "на глазок"
 
const
MCI_SETAUDIO = $0873;
MCI_DGV_SETAUDIO_VOLUME = $4002;
MCI_DGV_SETAUDIO_ITEM = $00800000;
MCI_DGV_SETAUDIO_VALUE = $01000000;
MCI_DGV_STATUS_VOLUME = $4019;
 
type
 
MCI_DGV_SETAUDIO_PARMS = record
  dwCallback: DWORD;
  dwItem: DWORD;
  dwValue: DWORD;
  dwOver: DWORD;
  lpstrAlgorithm: PChar;
  lpstrQuality: PChar;
end;
 
  MCI_STATUS_PARMS = record
    dwCallback: DWORD;
    dwReturn: DWORD;
    dwItem: DWORD;
    dwTrack: DWORD;
  end;
 
  HMSRec = record
    Hours: byte;
    Minutes: byte;
    Seconds: byte;
    NotUsed: byte;
 
  end;
 
  TPanel = class (ExtCtrls.TPanel)
    public
    property Canvas;
  end;
 
  TWMVPlayer = class(TForm)
    MediaPlayer: TMediaPlayer;
    Panel1: TPanel;
    DisplayPanel: TPanel;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    PlayButton: TButton;
    PauseButton: TButton;
    StopButton: TButton;
    OpenButton: TButton;
    OpenDialog: TOpenDialog;
    Timer: TTimer;
    TimerResize: TTimer;
    TrackBar1: TTrackBar;
    Edit1: TLabel;
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TrackBar1Change(Sender: TObject);
    procedure ProgressBar1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure StopButtonClick(Sender: TObject);
    procedure TimerResizeTimer(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure PauseButtonClick(Sender: TObject);
    procedure PlayButtonClick(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    Loaded: boolean;
    Played: boolean;
    avimnog : double;
    function Rvol: integer;
    procedure Wvol(const Value: integer);
    procedure Load(filename: string);
  public
    { Public declarations }
    procedure Play(filename:string = '');
    procedure Pause;
    procedure Stop;
    function GetAllPlayFiles(StartDir:string):TStringList;
    // 0 - 1000;
    property Volume: integer Read Rvol Write Wvol;
  end;
 
var
  WMVPlayer: TWMVPlayer;
 
function GetMPVolume(MP: TMediaPlayer): Integer;
procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
 
 
implementation
 
uses unit1;
 
{$R *.dfm}
 
function SecondsToTime(sec: double): String;
var h,m,s:Word;
begin
//MediaPlayer1.TimeFormat := tfMilliseconds;
  sec := (sec / 1000) * WMVPlayer.avimnog;
  h:=trunc((sec)/(60*60));
  m:=trunc((sec)/60) mod 60;
  s:=trunc(sec) mod 60;
  result:='';
  if h=0 then result:='' else result:=inttostr(h)+b_time_rz;
  if m<10 then result:=result+'0';
  result:=result+inttostr(m)+b_time_rz;
  if s<10 then result:=result+'0';
  result:=result+inttostr(s);
end;
 
procedure SetMPVolume(MP: TMediaPlayer; Volume: Integer);
var
p:MCI_DGV_SETAUDIO_PARMS;
begin
p.dwCallback := 0;
p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
p.dwValue := Volume;
p.dwOver := 0;
p.lpstrAlgorithm := nil;
p.lpstrQuality := nil;
mciSendCommand(MP.DeviceID, MCI_SETAUDIO,
MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p));
end;
 
function GetMPVolume(MP: TMediaPlayer): Integer;
var
  p: MCI_STATUS_PARMS;
begin
  p.dwCallback := 0;
  p.dwItem := MCI_DGV_STATUS_VOLUME;
  mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p));
  Result := p.dwReturn;
  { Volume: 0 - 1000 }
end;
 
procedure TWMVPlayer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Stop;
end;
 
procedure TWMVPlayer.FormCreate(Sender: TObject);
begin
Wmvplayer.windowState:= wsMaximized;
Wmvplayer.FormStyle :=fsstayOnTop;
Wmvplayer.BorderStyle:=bsNone;
  Loaded:=false;
  Played:=false;
  OpenDialog.Filter:=WMVOpenDialogTypes;
  DoubleBuffered:=true;
  MediaPlayer.TimeFormat:=tfMilliseconds;
end;
 
procedure TWMVPlayer.FormResize(Sender: TObject);
begin
  if Loaded then TimerResize.Enabled:=true;
end;
 
function TWMVPlayer.GetAllPlayFiles(StartDir: string): TStringList;
var
  SearchRec: TSearchRec; ext: string;
begin
  result:=TStringList.Create;
  if StartDir[Length(StartDir)] <> '\' then
    StartDir := StartDir + '\';
  if FindFirst(StartDir + '*.*', faAnyFile, SearchRec) = 0 then begin
     repeat Application.ProcessMessages;
        if ((SearchRec.Attr and faHidden) = faHidden) or ((SearchRec.Attr and faSysFile) = faSysFile) then Continue;
        if (SearchRec.Attr and faDirectory) <> faDirectory then begin
          // file
          ext:=LowerCase(ExtractFileExt(SearchRec.Name));
          if (pos('mp3',ext)>0) OR (pos('wav',ext)>0) OR (pos('wma',ext)>0) OR (pos('wmv',ext)>0) then begin
              // file ok
              result.Add(SearchRec.Name)
          end;
        end;
     until FindNext(SearchRec) <> 0;
  end;
  FindClose(SearchRec);
end;
 
procedure TWMVPlayer.Load(filename:string);
begin
  Edit1.Caption:='';
  Played:=false;
  if FileExists(FileName) then begin
    MediaPlayer.FileName:=FileName;
    MediaPlayer.Open;
    avimnog:=1;
    Edit1.Caption:=ExtractFileName(FileName);
    if (LowerCase(ExtractFileExt(MediaPlayer.FileName)) = '.mp3') OR
       (LowerCase(ExtractFileExt(MediaPlayer.FileName)) = '.wav') OR
       (LowerCase(ExtractFileExt(MediaPlayer.FileName)) = '.wma')
    then
      DisplayPanel.Caption:=audio
    else begin
      DisplayPanel.Caption:='';
      MediaPlayer.Display:=DisplayPanel;
    end;
    // avi множитель
    if (LowerCase(ExtractFileExt(MediaPlayer.FileName)) = '.avi') then begin
      avimnog:=avi_const;
    end;
    Loaded:=true;
    TrackBar1.Position:=Round(Volume/100);
  end else begin
    ShowMessage('Media WMV Player - нет файла для открытия');
    Loaded:=false;
    Abort;
  end;
end;
 
procedure TWMVPlayer.Pause;
begin
  Timer.Enabled:=false;
  if (loaded) then begin
    MediaPlayer.Pause;
    Played:=not Played;
    Timer.Enabled:=Played;
  end;
end;
 
procedure TWMVPlayer.PauseButtonClick(Sender: TObject);
begin
  //pause
  Pause;
end;
 
procedure TWMVPlayer.Play(filename: string);
begin
  if filename = '' then if loaded then begin
    MediaPlayer.Play;
    Played:=true;
    Timer.Enabled:=true;
    exit;
  end;
  if (loaded) AND (filename=MediaPlayer.FileName) then begin
    MediaPlayer.Play;
    Played:=true;
    Timer.Enabled:=true;
    exit;
  end;
  Load(filename);
  MediaPlayer.Play;
  Played:=true;
  ProgressBar1.Max:=MediaPlayer.Length;
  ProgressBar1.Position:=0;
  Timer.Enabled:=true;
  MediaPlayer.DisplayRect:=DisplayPanel.Canvas.ClipRect;
end;
 
procedure TWMVPlayer.PlayButtonClick(Sender: TObject);
begin
  // play
  Play;
end;
 
procedure TWMVPlayer.ProgressBar1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if not Loaded then exit;
  if Button = mbLeft then begin
    ProgressBar1.Position:=round(
      (ProgressBar1.max/(ProgressBar1.Width-2))*X
    );
    MediaPlayer.Position:=ProgressBar1.Position;
    if Played then MediaPlayer.Play;
  end;
end;
 
function TWMVPlayer.Rvol: integer;
begin
  result:=1000;
  if Loaded then begin
    result:=GetMPVolume(MediaPlayer);
  end;
end;
 
procedure TWMVPlayer.Stop;
begin
  if loaded then begin
    loaded:=false;
    Played:=false;
    MediaPlayer.Close;
    Edit1.Caption:='';
    DisplayPanel.Caption:='';
  end;
end;
 
procedure TWMVPlayer.StopButtonClick(Sender: TObject);
begin
  Stop;
end;
 
procedure TWMVPlayer.TimerResizeTimer(Sender: TObject);
begin
  MediaPlayer.DisplayRect:=Rect(0,0,DisplayPanel.Width-1,DisplayPanel.Height-1);
  TimerResize.Enabled:=false;
end;
 
procedure TWMVPlayer.TimerTimer(Sender: TObject);
begin
  if Loaded and Played then begin
     ProgressBar1.Position:=MediaPlayer.Position;
     Label1.Caption:=SecondsToTime(MediaPlayer.Position) + ' / '+
        SecondsToTime(ProgressBar1.max);
     if ProgressBar1.Position=ProgressBar1.Max then Played:=false;
  end else begin
    Timer.Enabled:=false;
    ProgressBar1.Position:=0;
    Label1.Caption:=SecondsToTime(0);
  end;
end;
 
 
 
procedure TWMVPlayer.TrackBar1Change(Sender: TObject);
begin
  Self.Volume:=TTrackBar(Sender).Position*100;
end;
 
procedure TWMVPlayer.Wvol(const Value: integer);
begin
  if Loaded then SetMPVolume(MediaPlayer,value);
end;
 
procedure TWMVPlayer.Button1Click(Sender: TObject);
begin
WMVPlayer.Stop;
WMVPLayer.Close;
end;
 
end.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2015, 18:28
Ответы с готовыми решениями:

Mp3 в mp4 конвертер
как сделать средствами делфи чтобы открыть mp3 файл,а после нажатия кнопки на...

Ошибка при воспроизведении файла mp4
При запуске программа MediaPlayer1.DeviceType := dtAutoSelect; ...

После закрывания страницы с видео, звук из видео остается включенным. Как ее отключить?
После закрывания страницы с видео, звук из видео остается включенным. Как ее...

Как прописать путь к видео, чтобы при запуске приложения видео начинало работать?
как прописать путь к видео чтоб при запуске приложения видео начинало работать?...

У меня выбивает ошибку при запуске видео: "вывод видео недоступен не найдена программа распаковки 'vids:div3'
программа &quot;видео плеер&quot; Кто знает подскажите, и если нужен код проги то я...

1
krapotkin
3468 / 3066 / 1057
Регистрация: 14.04.2014
Сообщений: 14,842
Записей в блоге: 15
01.05.2015, 19:19 2
лучше взять FMX
или VLC https://wiki.videolan.org/Using_libvlc_with_Delphi/
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2015, 19:19

Нужна информация по видео форматам (MPEG,WMV,ASF) и видео контейнерам (AVI,MP4,OGM)
Доброе время суток, дорогие форумчание. Мне для работы очень нужна следующая...

Обрезать видео mp4
Доброго времени, уважаемые форумчане! Прошу прощения, если не туда или не так...

Восстановить видео .mp4
Снимал на телефон SE xperia arc S и после не обнаружил снятого. Подключил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru