Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];

Вниз

KOLMediaPlayer   Найти похожие ветки 

 
Dy1   (2008-10-31 21:52) [0]

вопрос наверно глупый...
Как запустить плеер из чистого КОЛ? При создании с помощью КОЛнМЦК работает, а в КОЛ не получается
program ScrSvrVid;
uses FastMM4, Windows, KOL,
 main in "main.pas",
 dlg in "dlg.pas";
var
 s: string;
begin
Run_;
end.


unit main;
interface
uses
 Windows, KOL, KOLMediaPlayer;
 procedure Run_;
var
 f: PControl;
 mp: PMediaPlayer;
 
implementation

procedure onnotif(d: pointer; Sender: PMediaPlayer; NotifyValue: TMPNotifyValue);
begin
 if NotifyValue = nvSuccessful then
   Sender.Play(1,-1);
end;

procedure Run_;
begin
 f := NewForm(nil, "");
//  f.HasCaption := False; // не работает, не показывает окно
 f.Show;
 mp := NewMediaPlayer("t.wmv", f.GetWindowHandle);//кодек стоит
 mp.OnNotify := TMPOnNotify(MakeMethod(nil, @onnotif));
Run(f);
 mp.Stop;
 mp.Free;
end;
end.


 
Дмитрий К ©   (2008-10-31 22:49) [1]

program Project1;

uses
 KOL, KOLMediaPlayer;

var
 Form: PControl;
 Btn: PControl;
 MP: PMediaPlayer;

procedure BtnClick(Dummy, Sender: PObj);
begin
 MP.Play(0, MP.Length);
end;

begin
 Form := NewForm(nil, "");
 Applet := Form;
 Form.CreateWindow;
 Form.HasCaption := False;
 MP := NewMediaPlayer("c:\windows\media\tada.wav", Form.Handle);
 Form.Add2AutoFree(MP);
 Btn := NewButton(Form, "Play");
 Btn.OnClick := TOnEvent(MakeMethod(nil, @BtnClick));

 Run(Applet);
end.


 
Dy1   (2008-11-02 00:50) [2]

Дмитрий К, в проекте будет только обработка ключей запуска, а всё остальное - в модуле(-ях). По-другому будет каша


 
Dy1   (2008-11-02 01:13) [3]

в моём варианте вылезает ошибка, в другом вообще не запускается


 
Дмитрий К ©   (2008-11-02 18:19) [4]

МедиаПлейеру нужен Applet для обработки нотификаций.


 
Dy1   (2008-11-03 13:28) [5]

музыка есть, нет видео - AV. Во всех вариантах. Кодеки стоят. КОЛ 2.87 с не помню сколькими плюсами


 
finder2007   (2008-11-03 19:29) [6]

Была такая же проблема. Заюзал DirectShow - помогло.


 
Dy1   (2008-11-03 20:55) [7]

как?


 
finder2007   (2008-11-04 13:23) [8]

Что-то навроде этого:

uses DShow, ActiveX, ComObj;

var
 MyGraphBuilder: IGraphBuilder;
 MyMediaControl: IMediaControl;
 MyMediaEventEx: IMediaEventEx;
 MyMediaSeeking: IMediaSeeking;
 MyVideoWindow : IVideoWindow;
 MyBasicAudio  : IBasicAudio;


*********
При запуске программы:
CoInitialize(nil);
*********
При выходе:
CoUninitialize;
*********

function Play(f:Kol_String):boolean;
var hr:integer;
begin
 result:=false;
 CoCreateInstance(CLSID_FilterGraph,nil,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,My GraphBuilder);
 hr:=MyGraphBuilder.RenderFile(StringToOleStr(f),nil);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaControl,MyMediaControl);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaEventEx,MyMediaEventEx);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IMediaSeeking,MyMediaSeeking);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IBasicAudio,MyBasicAudio);
 if FAILED(hr) then exit;
 hr:=MyGraphBuilder.QueryInterface(IID_IVideoWindow,MyVideoWindow);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.put_Owner(Form1.Panel1.Handle);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
 if FAILED(hr) then exit;
 hr:=MyVideoWindow.SetWindowPosition(0,0,Form1.Panel1.ClientRect.Right,Form1.Pane l1.ClientRect.Bottom);
 if FAILED(hr) then exit;
 hr:=MyBasicAudio.put_Volume(VolumeTrackBar.Position);

 hr:=MyMediaControl.Run;
 if FAILED(hr) then exit;

 result:=true;
end;


А более подробно сюда - http://directshow.wonderu.com/



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2010.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1279474081
Пазитроныч
2010-07-18 21:28
2010.10.17
Ваше отношение к удаленным образовательным технологиям?


2-1280119066
Spot
2010-07-26 08:37
2010.10.17
Ошибка в Locate


15-1279010786
Артур Д.
2010-07-13 12:46
2010.10.17
Опыт работы с фрилансерами


2-1280136272
Jacksotnik
2010-07-26 13:24
2010.10.17
Помогите с SELECT INTO OUTFILE


15-1279144743
Димон
2010-07-15 01:59
2010.10.17
Как передать файл на телефон по блютуз?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский