|
Вопрос # 6 551/ вопрос открыт / |
|
Здравствуйте! Проиграть .avi из .RES сделал по Вопросу # 855. Работает.
Прошу замечания на первый взгляд.
Приложение: Переключить в обычный режим- {{code}}
-
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls;
-
- type
- TForm1 = class(TForm)
- Button1: TButton;
- MediaPlayer1: TMediaPlayer;
- procedure Button1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- function sGetTempPath: string;
- procedure MediaPlayer1Notify(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
-
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
-
- implementation
- uses Unit2;
-
- {$R *.dfm}
- {$R Resources.RES}
-
-
- var
- Buffer: array[0..1023] of Char;
- begin
- SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer));
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- var Res : TResourceStream;
- begin
- Res := TResourceStream.Create(hInstance, 'sample_avi', Pchar('AVI'));
-
- Res.SavetoFile(sGetTempPath+'sound.avi');
-
- Res.Free;
-
- MediaPlayer1.Notify:= True;
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Form2.Visible:=True;
- MediaPlayer1.DeviceType:= dtAutoSelect;
- MediaPlayer1.FileName:=(sGetTempPath+'sound.avi');
- MediaPlayer1.Open;
- MediaPlayer1.Play;
- end;
-
- procedure TForm1.MediaPlayer1Notify(Sender: TObject);
-
- if mediaplayer1.Mode = mpStopped then
-
- MediaPlayer1.Stop;
- MediaPlayer1.Close;
- Form2.Visible:=False;
- end;
- end;
-
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- if DeleteFile(sGetTempPath+'sound.avi') then
-
- else
-
- end;
-
- end.
- {{/code}}
-
 |
Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 12 августа 2014, 11:50
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 12; последнее сообщение — 15 августа 2014, 18:23; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 12 августа 2014, 13:53 [#1]:
Цитата (zvygin1964):
Прошу замечания на первый взгляд.
Домашнее задание: переделать прогу так, чтобы исключить выгрузку ресурса в файл.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 12 августа 2014, 20:04 [#2]:
Сделаю. Но зачем?
|
|
zvygin1964 (статус: Посетитель), 12 августа 2014, 20:06 [#3]:
Я столько мучался с этой загрузкой-выгрузкой. Хотел помещать все в .ехе .
|
|
zvygin1964 (статус: Посетитель), 12 августа 2014, 20:18 [#4]:
min@y™: Сделал: unit Unit1; //сделано по Вопросу # 6 544, # 855
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
MediaPlayer1: TMediaPlayer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MediaPlayer1Notify(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Notify:= True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Visible:=True;
MediaPlayer1.DeviceType:= dtAutoSelect;
MediaPlayer1.FileName:='C:\delete\videoDelphi\Masha and bear. fragment 1.avi';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin //Определяю состояние MediaPlayer
if mediaplayer1.Mode = mpStopped then
begin // статус = mpStopped, то значит, видео закончилось
MediaPlayer1.Stop;
MediaPlayer1.Close;
Form2.Visible:=False;
end;
end;
end.
|
|
min@y™ (статус: Доктор наук), 12 августа 2014, 20:30 [#5]:
Цитата (zvygin1964):
Сделал
Я не имел в виду проигрывание видео из внешнего файла. А как раз наоборт - проигрывание видео прямо из ресурса, не сохраняя это видео во внешний файл!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 12 августа 2014, 20:31 [#6]:
Такого я не видел. Как звучит запрос в Гугл?
|
|
min@y™ (статус: Доктор наук), 12 августа 2014, 20:37 [#7]:
Цитата (zvygin1964):
Такого я не видел. Как звучит запрос в Гугл?
Ну, к примеру, так.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 15 августа 2014, 10:54 [#8]:
Не смог установить DSPack (не понял вашего урока по установке компонента в вопросе # 5640) и поэтому DSPack/readme.htm тоже осталось не выполнимым:
Delphi 5,6 & 7
1 - Add this paths to your search directory:
- (DSPackDir)\src\Directx9
- (DSPackDir)\src\DSPack
2 - Compile DirectX 9 Package (DirectX9_Dx.dpk) from the "packages" directtory.
3 - Compile DSPack Package (DSPack_Dx.dpk) from the "packages" directory.
4- Install Design Package (DSPackDesign_Dx.dpk) from the "packages" directory.
Как вы и предполагали:"для меня это надолго или не преодолимо".
|
|
zvygin1964 (статус: Посетитель), 15 августа 2014, 11:15 [#9]:
Установку пакетов переношу в новый вопрос.
|
|
min@y™ (статус: Доктор наук), 15 августа 2014, 17:18 [#10]:
А я про DSPack и не говорил ничего.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
zvygin1964 (статус: Посетитель), 15 августа 2014, 17:52 [#11]:
Значит Ваша подсказка в Гугле "delphi проигрывание видео из ресурса" не помогла... То есть, я её не понял.
|
|
min@y™ (статус: Доктор наук), 15 августа 2014, 18:23 [#12]:
Цитата (zvygin1964):
Значит Ваша подсказка в Гугле "delphi проигрывание видео из ресурса" не помогла... То есть, я её не понял.
Этот запрос в гугл выдаёт 100500 ахулиардов ссылок. Только не говори мне, что все они ведут на DSPack!!!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|