XE7 de import yapma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

XE7 de import yapma

Mesaj gönderen hido »

Selamlar...

Komik bir durum ama: improt işlemi hiç yapmadım ve yapamadım "XE7" de windows media player nasıl import edebilirim...
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

Maalesef konu güncel arkadaşlar....
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

Merhaba.

- TLB dosyasını oluşturmak kafi. Zaten ActiveX component import edip forma koymana lüzum yok.
- XE serisinden beridir Component Package oluşturmak falan gerekiyordu. Ondan sonra yükleme falan yapıyorduk. Bir kaç defa eski tip bileşenin XE versiyonlarına uyumlaştırmak için çalışma yapmıştım ama artık direkt kaynaktan kullanıyorum. VCL zaten -şahsen- mümkün olduğunca kullanmıyorum.

Kullanımı...

Kod: Tümünü seç

uses WMPLib_TLB;

Var
  xMediaPlayer : TWindowsMediaPlayer;

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  Media : IWMPMedia;
begin
  xMediaPlayer := TWindowsMediaPlayer.Create(nil);
  xMediaPlayer.ParentWindow := Form1.Handle;
  xMediaPlayer.URL          := 'd:\ARMAN-Genel\Music\gelevera deresi.mp3';
  xMediaPlayer.uiMode       := 'invisible';
  xMediaPlayer.controls.play;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  if Assigned(xMediaPlayer) AND (xMediaPlayer.playState = wmppsPlaying) then
  begin
    xMediaPlayer.controls.stop;
    xMediaPlayer.close;
    xMediaPlayer.Free;
    xMediaPlayer := Nil;
    ShowMessage('Player durduruldu...');
  end else ShowMessage('ne oldu bilemedim...');
end;
TLB dosyasını elde etmek için işlem adımları.

Resim
Resim
Resim
Resim
Resim
Resim
Resim
Resim
Resim
Resim ....Resim
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

mrmarman yazdı:Merhaba.

Resim

Hocam bu resim ekranı hariç tüm dediklerinizi yaptım fakat nedense windows media player xe7 de halen çıkmıyor...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

VcL paletine eklenmesini bekleme. Yukarıda örneğini gösterdiğim şekilde uygula.
Resim
Resim ....Resim
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

mrmarman yazdı:VcL paletine eklenmesini bekleme. Yukarıda örneğini gösterdiğim şekilde uygula.

Hocam saçma birşey ama inanın çıkmıyor, windows media player uygulamasını "VLV Forms Application - Delphi" dan açmaya çalışıyorum fakat yok...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen SimaWB »

hido yazdı:
mrmarman yazdı:VcL paletine eklenmesini bekleme. Yukarıda örneğini gösterdiğim şekilde uygula.

Hocam saçma birşey ama inanın çıkmıyor, windows media player uygulamasını "VLV Forms Application - Delphi" dan açmaya çalışıyorum fakat yok...
Çıkmayan ne? Sanırım siz bileşenler arasında görünmesini bekliyorsunuz.
Ama Sn.mrmarman da ısrarla "size bileşen paletinde çıkmasını bekleme" diyor :)
Örneğe bakarsanız TWindowsMediaPlayer, TForm içinde değil. Yani form üzerine konulmuş bir bileşen değil.
There's no place like 127.0.0.1
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

SimaWB yazdı:
hido yazdı:
mrmarman yazdı:VcL paletine eklenmesini bekleme. Yukarıda örneğini gösterdiğim şekilde uygula.

Çıkmayan ne? Sanırım siz bileşenler arasında görünmesini bekliyorsunuz.
Ama Sn.mrmarman da ısrarla "size bileşen paletinde çıkmasını bekleme" diyor :)
Örneğe bakarsanız TWindowsMediaPlayer, TForm içinde değil. Yani form üzerine konulmuş bir bileşen değil.
Hocam Dikaktimden kaçmış kusura bakmayım, ancak bu seferde anlayamadığım şey o zaman görseli nereye vereceğim windows media player bileşeni eklemeyince...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

Merhaba
Verdiğim örneği deneyip öyle sundum. Bu kodu boş bir projede deneyin, sonucu gördükten sonra aslında forma bileşen bırakmaktan farklı olmadığını göreceksiniz. TLB dosyasında sınıfa ait tüm property içeriği mevcut. Boyutlandırma, görüntüleme, dosya seçme vb. görsel olmasa da küçük bir çalışma ile sonuç elde edebileceğiniz basitlikte.

Sıkıntı olursa uygun zamanda proje olarak buradan bir tane daha paylaşırım.
Resim
Resim ....Resim
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

mrmarman yazdı:Merhaba
Verdiğim örneği deneyip öyle sundum. Bu kodu boş bir projede deneyin, sonucu gördükten sonra aslında forma bileşen bırakmaktan farklı olmadığını göreceksiniz. TLB dosyasında sınıfa ait tüm property içeriği mevcut. Boyutlandırma, görüntüleme, dosya seçme vb. görsel olmasa da küçük bir çalışma ile sonuç elde edebileceğiniz basitlikte.

Sıkıntı olursa uygun zamanda proje olarak buradan bir tane daha paylaşırım.

Hocam sıfır bir proje oluşturdum ama olmadı, merakla proje bekliyorum saygılarımla....

Kod: Tümünü seç

unit MediaPlayer;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, WMPLib_TLB, Vcl.Buttons, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Panel1: TPanel;
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Var
  XMediaPlayer: TWindowsMediaPlayer;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  Media: IWMPMedia;
begin

  with XMediaPlayer do
  begin
    XMediaPlayer := TWindowsMediaPlayer.Create(nil);
    XMediaPlayer.ParentWindow := Form1.Handle;
    XMediaPlayer.URL := 'C:\Users\Public\Videos\Sample Videos\Yabani hayat.wmv';
    XMediaPlayer.uiMode := 'invisible';
    XMediaPlayer.Controls.Play;
  end;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  if Assigned(XMediaPlayer) AND (XMediaPlayer.playState = wmppsPlaying) then
  begin
    XMediaPlayer.Controls.stop;
    XMediaPlayer.close;
    XMediaPlayer.Free;
    XMediaPlayer := Nil;
    ShowMessage('Player durduruldu...');
  end
  else
    ShowMessage('ne oldu bilemedim...');
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

:D Neyse bu da benden olsun.

Örnek kaynak kodlu proje için bu linke tıklayın.

Resim

Kaynak Kodları

Kod: Tümünü seç

uses WMPLib_TLB;

Var
  xMediaPlayer : TWindowsMediaPlayer;

Procedure DosyaOynat( strDosya : TFileName; GosteriPanel: TPanel );
begin
  if xMediaPlayer <> Nil then
  begin
    xMediaPlayer.Visible := False;
    xMediaPlayer.controls.stop;
    xMediaPlayer.close;
    xMediaPlayer.Free;
    xMediaPlayer := Nil;
  end;

  xMediaPlayer                   := TWindowsMediaPlayer.Create(nil);
  xMediaPlayer.Parent            := GosteriPanel;
  xMediaPlayer.ParentWindow      := GosteriPanel.Handle;
  xMediaPlayer.OnPlayStateChange := Form1.PlayerPlayStateChange;

  xMediaPlayer.Visible                     := false;
  xMediaPlayer.uiMode                      := 'none'; // Kontrolleri kapatır...   // 'invisible' de olabilir.
  xMediaPlayer.Cursor                      := GosteriPanel.Cursor;
  xMediaPlayer.windowlessVideo             := true;
  xMediaPlayer.enableContextMenu           := false;
  xMediaPlayer.stretchToFit                := true;
  xMediaPlayer.settings.enableErrorDialogs := false;
  xMediaPlayer.settings.autoStart          := false;
  xMediaPlayer.settings.invokeURLs         := false;
  xMediaPlayer.URL                         := strDosya;
  xMediaPlayer.controls.play;
  while xMediaPlayer.playState <> wmppsPlaying do
  begin
    Sleep(1);
    Application.ProcessMessages;
  end;
  xMediaPlayer.Visible                     := True;
  xMediaPlayer.SetBounds( 10, 10, GosteriPanel.Width-20, GosteriPanel.Height-20);// .DisplayRect  := Rect(0, 0, 400, 300);
end;

procedure PlayerDurdur;
begin
  if Assigned(xMediaPlayer) then
  begin
    xMediaPlayer.Visible := False;
    xMediaPlayer.controls.stop;
    xMediaPlayer.close;
    xMediaPlayer.Free;
    xMediaPlayer := Nil;
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  strDosya : String;
begin
  With TOpenDialog.Create(nil) do
  begin
    Filter      := 'MP4 Video Dosyaları *.MP4|*.MP4|MP3 Müzik Dosyaları *.MP3|*.MP3';
    FilterIndex := 1;
    if Execute then
    begin
      strDosya := FileName;
      Memo1.Lines.Add( 'Oynatılacak Dosya : ' + strDosya );
      DosyaOynat( strDosya, Panel1 );
    end;
    Free;
  end;
end;


procedure TForm1.PlayerPlayStateChange (ASender: TObject; NewState: Integer);
Var
  strDurum : String;
begin
  strDurum := '.';
  case NewState of
  wmppsUndefined     : strDurum := 'Tanımsız...';
  wmppsStopped       : strDurum := 'Durdu';
  wmppsPaused        : strDurum := 'Pause Edildi...';
  wmppsPlaying       : strDurum := 'Çalınıyor...';
  wmppsScanForward   : strDurum := 'İleri sardırma';
  wmppsScanReverse   : strDurum := 'Geri sardırma';
  wmppsBuffering     : strDurum := 'Tamponlanıyor..';
  wmppsWaiting       : strDurum := 'Beklemede';
  wmppsMediaEnded    : strDurum := 'Çalma işlemi sona erdi.';
  wmppsTransitioning : strDurum := 'Veri alış verişinde.';
  wmppsReady         : strDurum := 'Hazır';
  wmppsReconnecting  : strDurum := 'Tekrar bağlantı kuruluyor';
  wmppsLast          : strDurum := 'Sonda';
  end;
  Label1.Caption := 'Durum = ' + strDurum;
  Memo1.Lines.Add( strDurum );
end;


procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  PlayerDurdur;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  PlayerDurdur;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: XE7 de import yapma

Mesaj gönderen hido »

Eline sağlaık hocam :)

Son sorum hocam, eskiden tvlerin veya radyoların mms kodlarıyla media playda çalıştırabiliyorduk, fakat bir çok mms link denedim ama hiç biri çalışmıyor ben neyi atladım acaba?

Urllerde işe yaramıyor...
http://www.atv.com.tr/WEBTV/CANLI-YAYIN
http://fox.com.tr/canli-yayin
http://www.startv.com.tr/canli-yayin
http://www.showtv.com.tr/canliyayin

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  If xMediaPlayer.playState = 3 then
  begin
    xMediaPlayer.close;
  end
else
begin
  xMediaPlayer.URL := 'mms://212.175.166.3/TV1'; // TRT1
end;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

Merhaba.

- Bu soruyu sormadan önce Windows Media Player'in bizatihi kendisini açıp denedin mi ?!

- Senin için Google ile araştırdım, cevap basitmiş ref. bu Microsoft linki der ki "Windows Media Player 11, Microsoft Media Server (MMS) protokolü artık desteklememektedir."

- Bu linkleri de yine senin için vakit ayırarak baktım. Aslında bunu da senin araştırman gerekirdi bunun da altını çiziyorum, her birisi rtmp streaming protokolüne geçmişler. Böylece daha az veri yükü ile daha fazla kullanıcıya ulaşılıyor.

- Bu konuları daha önce paylaştım. VLC player ile ilgili örnek proje de sundum. Forumda araştırıp inceleyebilirsin.

- Lütfen bir sonraki sorunu sorarken daha seçici olmayı deneylim. Şunu unutmayın. Bir projeye başlamadan önce çerçevenizi çizip öyle başlayın. Bugün ne yapsam, hadi Video Player yapayım diyerek başlamışsanız hatalı bir giriş yapmışsınız demektir.

- Daha Delphi cephesine varmadan, öncelikle araştırmanız gerek soruları sırasıyla yazıyorum.

- Yayın nedir,
- Video nedir, WEB üzerinden yayın türleri nelerdir,
- Streaming nedir,
- Protokol nedir,
- Geolocation limitleme nedir,
- Radyo ile Video playlist nasıl oluşur (M3U) / (M3U8)
- .. gerisi SilverLight / Flash video yapısal karşılaştırmaları vs. vs. vs. gider.

- Ben yayıncı olduğum için uzun zamandır bunları biliyor ve uyguluyorum. Şimdi bunu bana anlat dersen TV tarihinden girerim sen de sıkılır hemen projeyi yaz da ver dersin...

- Sana kızmıyorum ama bir kardeşin olarak bunların en az yarısını bilmeden projeye ara vermelisin derim.
Resim
Resim ....Resim
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: XE7 de import yapma

Mesaj gönderen dogan »

mrmarman yazdı:Merhaba.

- Bu soruyu sormadan önce Windows Media Player'in bizatihi kendisini açıp denedin mi ?!

- Senin için Google ile araştırdım, cevap basitmiş ref. bu Microsoft linki der ki "Windows Media Player 11, Microsoft Media Server (MMS) protokolü artık desteklememektedir."

- Bu linkleri de yine senin için vakit ayırarak baktım. Aslında bunu da senin araştırman gerekirdi bunun da altını çiziyorum, her birisi rtmp streaming protokolüne geçmişler. Böylece daha az veri yükü ile daha fazla kullanıcıya ulaşılıyor.

- Bu konuları daha önce paylaştım. VLC player ile ilgili örnek proje de sundum. Forumda araştırıp inceleyebilirsin.

- Lütfen bir sonraki sorunu sorarken daha seçici olmayı deneylim. Şunu unutmayın. Bir projeye başlamadan önce çerçevenizi çizip öyle başlayın. Bugün ne yapsam, hadi Video Player yapayım diyerek başlamışsanız hatalı bir giriş yapmışsınız demektir.

- Daha Delphi cephesine varmadan, öncelikle araştırmanız gerek soruları sırasıyla yazıyorum.

- Yayın nedir,
- Video nedir, WEB üzerinden yayın türleri nelerdir,
- Streaming nedir,
- Protokol nedir,
- Geolocation limitleme nedir,
- Radyo ile Video playlist nasıl oluşur (M3U) / (M3U8)
- .. gerisi SilverLight / Flash video yapısal karşılaştırmaları vs. vs. vs. gider.

- Ben yayıncı olduğum için uzun zamandır bunları biliyor ve uyguluyorum. Şimdi bunu bana anlat dersen TV tarihinden girerim sen de sıkılır hemen projeyi yaz da ver dersin...

- Sana kızmıyorum ama bir kardeşin olarak bunların en az yarısını bilmeden projeye ara vermelisin derim.

Hocam windows media play değil de twebbrowser üzerinden daha kolay olmaz mı?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: XE7 de import yapma

Mesaj gönderen mrmarman »

Soruda mediaplayer soruldu diye örnekledim.
Haklısın en makul çözüm webbrowser içinden kullanım. Player olarak html bloğunu string ifade olarak oluşturup kullanılır.
Resim
Resim ....Resim
Cevapla