Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )


 
Ответить Новая тема 
> Почти звук
M@T$
Вставить ник
сообщение 3:01:2008, 19:48
Цитата Ответить 


Новенький
Иконка группы

Группа: Новенький
Сообщений: 16
Регистрация: 1:10:2007
Пользователь №: 12 997



Репутация:   0  


 
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, MMSystem, DirectShow9, ActiveX;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    ListBox1: TListBox;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    Panel2: TPanel;
    Label3: TLabel;
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f: longint;
  n: TStrings;
implementation

{$R *.dfm}

var
   pGraphBuilder: IGraphBuilder;
  pMediaControl: IMediaControl;
  pMediaEvent  : IMediaEvent  ;





procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
  cap: TWaveInCaps;
  vol: longint;
begin
  for i := 0 to  waveInGetNumDevs  do
  begin
    waveInGetDevCaps(i, Addr(cap), SizeOf(cap));
    ListBox1.Items.Add(cap.szPname  )
  end;
  waveOutGetVolume(ListBox1.ItemIndex, @Vol);
f:=vol shr 16;
  end;

procedure TForm1.Timer1Timer(Sender: TObject);
  var
  vol, r: longint;
    hr: HRESULT;
  evCode: Integer;

begin
  waveOutGetVolume( ListBox1.ItemIndex, @Vol);
  Label1.Caption:= Inttostr(vol shr 16);
  r:=vol shr 16;


//Смысл в том чтобы при изменении уровня звука в большую сторону начиналась воспроизводится
один из видеоклипов из списка в Memo или LISTBOXa

  if r>f then  begin  n:=Memo1.Lines;
                   begin
    CoInitialize(nil);

  if Assigned(pGraphBuilder) then pGraphBuilder := nil;
  if Assigned(pMediaControl) then pMediaControl := nil;
  if Assigned(pMediaEvent)   then pMediaEvent   := nil;

  hr := CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder, pGraphBuilder);
  if FAILED(hr) then begin
    ShowMessage('Не удаётся создать GraphBuilder');
    exit;
  end;

  hr := pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
  if FAILED(hr) then begin
    ShowMessage('Не удаётся получить интерфейс MediaControl');
    exit;
  end;

  hr := pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
  if FAILED(hr) then begin
    ShowMessage('Не удаётся получить интерфейс MediaEvent');
    exit;
  end;
  
                                     //       Ну жно что бы воспроизводились видеофайлы из списка


                                           // n предположительно имя файла
                                            //помогите правильно указать имя файла

  hr := pGraphBuilder.RenderFile(StringToOleStr( n), '');
  if FAILED(hr) then begin
    ShowMessage('Не удаётся прорендерить файл');
    exit;
  end;

  hr := pMediaControl.Run;
  if FAILED(hr) then begin
    ShowMessage('не удаётся воспроизвести файл');
    exit;
  end;

  pMediaEvent.WaitForCompletion(INFINITE, evCode);
     CoUninitialize;
end;


                   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
If opendialog1.Execute then Memo1.Lines.Add(opendialog1.FileName);
end;



end.
Подняться вверх 
 
Сообщение #1


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись |  AJAX?
   

 

RSS Текстовая версия Сейчас: 2:12:2008 - 22:25

с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net