Delphi formu içinde youtube videosu oynatma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Delphi formu içinde youtube videosu oynatma
S.A.
Delphi formu içerisidnen youtube yüklenmiş videoyu nasıl izeletebilirim
Teşekkürler
Delphi formu içerisidnen youtube yüklenmiş videoyu nasıl izeletebilirim
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Delphi formu içinde youtube videosu oynatma
delphide webbrowser bileşenini forma ekleyerek youtube bağlanıp dilediğin videoyu izletebilirsin. Örnek olması açısındaan
1.yöntem
Delphi de bileşen (component) çubuğundan internet sekmesindeki webbrowser dan bir adet forumuna ekle ve bir buttonun onclik kısmına webbrowser1.navigate( ' www.youtube.com ') yaz. programı çalıştırdığında buttona tıklarsan youtube sayfasını açtığını ve videoya tıkladığında izleyebildiğini göreceksin. Direk youtuba değilde youtubedeki videoyu açmak istersen videonun adresini kodda değiştirerek ekle veya başka buttona koy.
2. yöntem
ilgili video oynatıcıların(flashplayer gibi ) ActiveX leri kullanarak youtubeyi göstermeden oradaki videoyu direk izletebilirsin
bu biraz karışık ama bir saat kadar uğraşırsan olayı kolayca yapabilirsin.
1.yöntem
Delphi de bileşen (component) çubuğundan internet sekmesindeki webbrowser dan bir adet forumuna ekle ve bir buttonun onclik kısmına webbrowser1.navigate( ' www.youtube.com ') yaz. programı çalıştırdığında buttona tıklarsan youtube sayfasını açtığını ve videoya tıkladığında izleyebildiğini göreceksin. Direk youtuba değilde youtubedeki videoyu açmak istersen videonun adresini kodda değiştirerek ekle veya başka buttona koy.
2. yöntem
ilgili video oynatıcıların(flashplayer gibi ) ActiveX leri kullanarak youtubeyi göstermeden oradaki videoyu direk izletebilirsin
bu biraz karışık ama bir saat kadar uğraşırsan olayı kolayca yapabilirsin.
-
- Üye
- Mesajlar: 23
- Kayıt: 06 Tem 2009 04:27
Re: Delphi formu içinde youtube videosu oynatma
Söyle bir yol daha önerebilirim embed kodunu al videonun bilgisayarda kaydet html dosyası oluşturup o dosyayı açmayı dene programda 

Re: Delphi formu içinde youtube videosu oynatma
Webbrowser a gerek yok. Shockwave flash ile Activex ten yükleyip kullanabilirsin.
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Delphi formu içinde youtube videosu oynatma
WebBorows olarak çalıştırdığımda youtube sayfasının tamamı çıkıyor
benim yapmaya çalıştığım sadece videonun görünmesi ve oynatılması
eğer yanlış yapmadı isem ShochWare ile yaptığımdada illaki swf uzantılı dosya istiyor
buradaki amaç kişi videoyu program içerisinden youtube yüklenmiş olanı görmesi
benim yapmaya çalıştığım sadece videonun görünmesi ve oynatılması
eğer yanlış yapmadı isem ShochWare ile yaptığımdada illaki swf uzantılı dosya istiyor
buradaki amaç kişi videoyu program içerisinden youtube yüklenmiş olanı görmesi
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Delphi formu içinde youtube videosu oynatma
Merhaba...
* Daha önce benzer bir ihtiyacım olmuştu. Kendime hazırladığım procedure aşağıda. Umarım işinizi görür.
* Forma bir adet TWebbrowser koyun, boyutu form ile genişleyebilir de yapabilirsiniz, video penceresini de autosize olacak şekilde ayarladım.
Videonun adres kodunu, hangi Webbrowser nesnesi olduğunu ve AutoPlay parameteresi ile TRUE verirseniz video yüklenir yüklenmez çalışacak şekilde belirtmek yetiyor.
* Sağ Mouse tıklayınca açılan menüleri de kapatmıştım ama burada gerekli mi bilemedim. Onun için forma bir tane de ApplicationEvents eleyip sağ Mouse (ama WebBrowser üzerindeki olanları) yakalayıp handled etmek yeterli oluyor. Belki bu başlığı okuyanlardan ihtiyacı duyan olur.
(Not:Uses ActiveX eklemeyi unutmayın)
Kullanımı Şöyle
Procedure içeriği aşağıdaki şekilde
* Daha önce benzer bir ihtiyacım olmuştu. Kendime hazırladığım procedure aşağıda. Umarım işinizi görür.
* Forma bir adet TWebbrowser koyun, boyutu form ile genişleyebilir de yapabilirsiniz, video penceresini de autosize olacak şekilde ayarladım.


* Sağ Mouse tıklayınca açılan menüleri de kapatmıştım ama burada gerekli mi bilemedim. Onun için forma bir tane de ApplicationEvents eleyip sağ Mouse (ama WebBrowser üzerindeki olanları) yakalayıp handled etmek yeterli oluyor. Belki bu başlığı okuyanlardan ihtiyacı duyan olur.
(Not:Uses ActiveX eklemeyi unutmayın)

Kullanımı Şöyle
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
YouTube( 'bqiBdo22mrg', WebBrowser1, True );
end;
Kod: Tümünü seç
Procedure YouTube( VideoCode: String; WebBrowser:TWebBrowser; AutoPlay:Boolean );
var
aStream : TMemoryStream;
strIcerik : String;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
strIcerik := ''
+ '<html><body>'
+ '<div id="resizable" class="resizable" style="width:100%; height:100%; border:solid gray 1px" class="ui-widget-content"> '
+ '<object class="video" style="height: 100%; width: 100%;">'
+ ' <embed src="http://www.youtube.com/v/'
+ VideoCode + '&hl=en_US&feature=player_embedded&version=3&autoplay=1" '
+ ' type="application/x-shockwave-flash"'
+ ' allowfullscreen ="true"'
+ ' allowScriptAccess ="always"'
+ ' width="100%" height="100%" '
+ ' </embed> '
+ '</object> '
+ '</body></html> ';
if Assigned(WebBrowser.Document) then
begin
aStream := TMemoryStream.Create;
try
aStream.WriteBuffer(Pointer(strIcerik)^, Length(strIcerik));
aStream.Seek(0, soFromBeginning);
// NOT: uses'a ActiveX eklenecek... IPersistStreamInit için...
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(aStream));
finally
aStream.Free;
end;
end;
end;
Re: Delphi formu içinde youtube videosu oynatma
Mrmarman hocam, bu örneğinizi kullanmak istedim fakat çalıştıramadım. Sanırım sorun youtube tarafında kod değişikliği. Paylaştığınız kod kısmını youtube göre güncellemek istedim dedim fakat html kodları arasında hangi bölümü aldığınızı anlayamadım, youtube tarafında bulamadım. Bu konuda yardımcı olabilirmisiniz. Çok teşekkürler Saygılarımla
Re: Delphi formu içinde youtube videosu oynatma
Emin misin hocam, aşağıdaki şekilde hiç değişiklik yapmadan kurdum çalıştı....
Sistemindeki FlashPlayer eklentini tazelemen gerekiyor olabilir mi ?
Sistemindeki FlashPlayer eklentini tazelemen gerekiyor olabilir mi ?
Kod: Tümünü seç
Uses ActiveX;
Procedure YouTube( VideoCode: String; WebBrowser:TWebBrowser; AutoPlay:Boolean );
var
aStream : TMemoryStream;
strIcerik : String;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
strIcerik := ''
+ '<html><body>'
+ '<div id="resizable" class="resizable" style="width:100%; height:100%; border:solid gray 1px" class="ui-widget-content"> '
+ '<object class="video" style="height: 100%; width: 100%;">'
+ ' <embed src="http://www.youtube.com/v/'
+ VideoCode + '&hl=en_US&feature=player_embedded&version=3&autoplay=1" '
+ ' type="application/x-shockwave-flash"'
+ ' allowfullscreen ="true"'
+ ' allowScriptAccess ="always"'
+ ' width="100%" height="100%" '
+ ' </embed> '
+ '</object> '
+ '</body></html> ';
if Assigned(WebBrowser.Document) then
begin
aStream := TMemoryStream.Create;
try
aStream.WriteBuffer(Pointer(strIcerik)^, Length(strIcerik));
aStream.Seek(0, soFromBeginning);
// NOT: uses'a ActiveX eklenecek... IPersistStreamInit için...
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(aStream));
finally
aStream.Free;
end;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
YouTube( 'tLkgcvOrpSQ', WebBrowser1, True );
end;
Re: Delphi formu içinde youtube videosu oynatma
Merhaba, Muharrem beyin koduna ilave bazı değişiklikler ile sanırım olumlu bir sonuç elde edebilirsiniz. Aşağıda yapılan değişiklikleri görebilirsiniz.
Kod: Tümünü seç
Procedure YouTube( VideoCode: String; WebBrowser : TWebBrowser; AutoPlay:Boolean );
var
strIcerik : String;
sStream : TStringStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
strIcerik := ''
+ '<html><body>'
+ '<iframe width="854" height="510" src="https://www.youtube.com/embed/%EMBED%" frameborder="0" allowfullscreen></iframe>'
+ '</body></html> ';
strIcerik := StringReplace(strIcerik, '%EMBED%', VideoCode, [rfReplaceAll]);
if Assigned(WebBrowser.Document) then
begin
sStream := TStringStream.Create;
try
sStream.WriteString(strIcerik);
sStream.Position := 0;
// NOT: uses'a ActiveX eklenecek... IPersistStreamInit için...
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(sStream));
finally
sStream.Free;
end;
end;
end;
Re: Delphi formu içinde youtube videosu oynatma
Arkadaşlarım hepinizden özür diliyorum. İşin derinini düşüneyim derken basit olanı unutma gafletinde bulundum. Chorome tarayıcı kullanıyorum bazı siteler Flashplayer durma hatası veriyordu. Sebebi ise Webkit tabanlı tarayıcılarda flashplayer eklentisi ile explorerda kurulu olanla bir nevi çakışmasından kaynaklı olduğunu öğrenmiştim. Dolayısı ile flash player explorerdan kaldırmış chorome da ki eklenti ile kullanıyordum. Hata benim tarafımda tekrardan çok özür diliyorum
) üstelik bir gündür de neden çalışmıyor diye yapmadığım şey kalmamıştı
Saygılarımla Affola ..
Thelvacı hocam bilgi için teşşekkür ediyorum hemen onuda inceleyip farka bakacağım.

Saygılarımla Affola ..
Thelvacı hocam bilgi için teşşekkür ediyorum hemen onuda inceleyip farka bakacağım.
Re: Delphi formu içinde youtube videosu oynatma
Çok ilginçtir ki Delphi7 ile bu kodu çalıştırabiliyorum. Aynı kodu kopyalayıp Xe6 da deniyorum boş sayfa geliyor. Hadi bakalım çık işin içinden çıkabilirsin
)

Re: Delphi formu içinde youtube videosu oynatma
XE8'de çalışıyor. Şöyle bir şey dene...
Bazen eski otomobiller gibi explorer'i iteklemek gerekebiliyor...
Tecrübe ile sabittir bazı sistemlerde flash eklentisini tetiklemek için illaki de Explorer açmak gerekebiliyor.
Bunu da hiç bir işe yaramayan bir satır ile halledebiliyoruz. Bu satırı kaldırınca çalışmıyor ancak ekleyince çalışıyor. Bunu da normal explorer penceresinde çalışan ama delphi yakasında çalışmayan bir script nedeniyle keşfetmiştim. Anlamsız ama iş görüyor. Bir dene bakalım sendeki de aynı sebeple mi çalışmıyormuş ?
satırını ekleyip create edilen bu Explorer'i hiç kullanmaya gerek kalmaksızın sonunda free etmek, Flash eklentisini tetiklemeye yetiyor.
Bazen eski otomobiller gibi explorer'i iteklemek gerekebiliyor...

Tecrübe ile sabittir bazı sistemlerde flash eklentisini tetiklemek için illaki de Explorer açmak gerekebiliyor.
Bunu da hiç bir işe yaramayan bir satır ile halledebiliyoruz. Bu satırı kaldırınca çalışmıyor ancak ekleyince çalışıyor. Bunu da normal explorer penceresinde çalışan ama delphi yakasında çalışmayan bir script nedeniyle keşfetmiştim. Anlamsız ama iş görüyor. Bir dene bakalım sendeki de aynı sebeple mi çalışmıyormuş ?
Kod: Tümünü seç
IEpp := CreateOleObject('InternetExplorer.Application');
Kod: Tümünü seç
Uses ComObj, ActiveX;
Procedure YouTube( VideoCode: String; WebBrowser : TWebBrowser; AutoPlay:Boolean );
var
strIcerik : String;
sStream : TStringStream;
IEpp : OleVariant;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
strIcerik := ''
+ '<html><body>'
+ '<iframe width="854" height="510" src="https://www.youtube.com/embed/%EMBED%" frameborder="0" allowfullscreen></iframe>'
+ '</body></html> ';
strIcerik := StringReplace(strIcerik, '%EMBED%', VideoCode, [rfReplaceAll]);
if (VarIsEmpty(IEpp)) then
begin
IEpp := CreateOleObject('InternetExplorer.Application');
WebBrowser.Silent := True;
if Assigned(WebBrowser.Document) then
begin
sStream := TStringStream.Create;
try
sStream.WriteString(strIcerik);
sStream.Position := 0;
// NOT: uses'a ActiveX eklenecek... IPersistStreamInit için...
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(sStream));
finally
sStream.Free;
end;
end;
IEpp.Quit;
IEpp := UnAssigned;
end;
end;
Re: Delphi formu içinde youtube videosu oynatma
Merhaba. Buda bir seçenek XE8 çalışıyor denedim.
Kullanımı:
Kod: Tümünü seç
uses ActiveX;
procedure WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
SL: TStringList;
MS: TMemoryStream;
begin
WebBrowser.Navigate('about:blank') ;
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then
begin
SL := TStringList.Create;
try
MS := TMemoryStream.Create;
try
SL.Text := HTMLCode;
SL.SaveToStream(MS);
MS.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(MS));
finally
MS.Free;
end;
finally
SL.Free;
end;
end;
end;
procedure GetPlayer(URL: string; WebBrowser: TWebBrowser);
var
SL: TStringList;
begin
Application.ProcessMessages;
SL := TStringList.Create;
try
SL.Add('<iframe width="440" ');
SL.Add('height="250" ');
SL.Add('src="' + StringReplace(URL, 'watch?v=', 'embed/', [rfReplaceAll, rfIgnoreCase]));
SL.Add('" frameborder="0" ');
SL.Add('allowfullscreen></iframe>');
WBLoadHTML(WebBrowser, SL.Text);
finally
SL.Free;
end;
end;
Kod: Tümünü seç
GetPlayer(Edit1.Text, Webbrowser1);
Re: Delphi formu içinde youtube videosu oynatma
Yeni bir bilgisayar imkanım vardı onu açıp yeni bir windows kurdum. Delphiyi kurup hemen deniyorum. ikisi arasındaki farkı gözlemleyip bilgi vereceğim Çok teşekkürler..
Re: Delphi formu içinde youtube videosu oynatma
Muarrem beyin göndermiş olduğu kod üzerinde yaptığım ufak değişikliği Windows 7 64 bit işletim sistemi üzerinde Delphi XE5 ile denemiş ve olumlu sonuç almıştım. Siz olumlu bir netice alamadınız mı ?