Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 551

/ вопрос открыт /

Здравствуйте! Проиграть .avi из .RES сделал по Вопросу # 855. Работает.
Прошу замечания на первый взгляд.

Приложение:
  1. {{code}}
  2.  
  3.  
  4. interface
  5.  
  6. uses
  7. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  8. Dialogs, StdCtrls, MPlayer, ExtCtrls, ComCtrls;
  9.  
  10. type
  11. TForm1 = class(TForm)
  12. Button1: TButton;
  13. MediaPlayer1: TMediaPlayer;
  14. procedure Button1Click(Sender: TObject);
  15. procedure FormCreate(Sender: TObject);
  16. function sGetTempPath: string;
  17. procedure MediaPlayer1Notify(Sender: TObject);
  18. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  19.  
  20. private
  21. { Private declarations }
  22. public
  23. { Public declarations }
  24. end;
  25. var
  26. Form1: TForm1;
  27.  
  28. implementation
  29. uses Unit2;
  30.  
  31. {$R *.dfm}
  32. {$R Resources.RES}
  33.  
  34.  
  35. var
  36. Buffer: array[0..1023] of Char;
  37. begin
  38. SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer));
  39. end;
  40.  
  41. procedure TForm1.FormCreate(Sender: TObject);
  42. var Res : TResourceStream;
  43. begin
  44. Res := TResourceStream.Create(hInstance, 'sample_avi', Pchar('AVI'));
  45.  
  46. Res.SavetoFile(sGetTempPath+'sound.avi');
  47.  
  48. Res.Free;
  49.  
  50. MediaPlayer1.Notify:= True;
  51. end;
  52.  
  53. procedure TForm1.Button1Click(Sender: TObject);
  54. begin
  55. Form2.Visible:=True;
  56. MediaPlayer1.DeviceType:= dtAutoSelect;
  57. MediaPlayer1.FileName:=(sGetTempPath+'sound.avi');
  58. MediaPlayer1.Open;
  59. MediaPlayer1.Play;
  60. end;
  61.  
  62. procedure TForm1.MediaPlayer1Notify(Sender: TObject);
  63.  
  64. if mediaplayer1.Mode = mpStopped then
  65.  
  66. MediaPlayer1.Stop;
  67. MediaPlayer1.Close;
  68. Form2.Visible:=False;
  69. end;
  70. end;
  71.  
  72. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  73. begin
  74. if DeleteFile(sGetTempPath+'sound.avi') then
  75.  
  76. else
  77.  
  78. end;
  79.  
  80. end.
  81. {{/code}}
  82.  


zvygin1964 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 12 августа 2014, 11:50
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 15 августа 2014, 18:23; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 12 августа 2014, 13:53 [#1]:

Цитата (zvygin1964):

Прошу замечания на первый взгляд.

Домашнее задание: переделать прогу так, чтобы исключить выгрузку ресурса в файл.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
zvygin1964

zvygin1964 (статус: Посетитель), 12 августа 2014, 20:04 [#2]:

Сделаю. Но зачем?
zvygin1964

zvygin1964 (статус: Посетитель), 12 августа 2014, 20:06 [#3]:

Я столько мучался с этой загрузкой-выгрузкой. Хотел помещать все в .ехе .
zvygin1964

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™

min@y™ (статус: Доктор наук), 12 августа 2014, 20:30 [#5]:

Цитата (zvygin1964):

Сделал

Я не имел в виду проигрывание видео из внешнего файла. А как раз наоборт - проигрывание видео прямо из ресурса, не сохраняя это видео во внешний файл!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
zvygin1964

zvygin1964 (статус: Посетитель), 12 августа 2014, 20:31 [#6]:

Такого я не видел. Как звучит запрос в Гугл?
min@y™

min@y™ (статус: Доктор наук), 12 августа 2014, 20:37 [#7]:

Цитата (zvygin1964):

Такого я не видел. Как звучит запрос в Гугл?

Ну, к примеру, так.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
zvygin1964

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

zvygin1964 (статус: Посетитель), 15 августа 2014, 11:15 [#9]:

Установку пакетов переношу в новый вопрос.
min@y™

min@y™ (статус: Доктор наук), 15 августа 2014, 17:18 [#10]:

А я про DSPack и не говорил ничего.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
zvygin1964

zvygin1964 (статус: Посетитель), 15 августа 2014, 17:52 [#11]:

Значит Ваша подсказка в Гугле "delphi проигрывание видео из ресурса" не помогла... То есть, я её не понял.
min@y™

min@y™ (статус: Доктор наук), 15 августа 2014, 18:23 [#12]:

Цитата (zvygin1964):

Значит Ваша подсказка в Гугле "delphi проигрывание видео из ресурса" не помогла... То есть, я её не понял.

Этот запрос в гугл выдаёт 100500 ахулиардов ссылок. Только не говори мне, что все они ведут на DSPack!!!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.03 сек.