Video mu Mp3
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Video mu Mp3
Media player bileşeni kullanarak, mp3 ve video oynatıcısı yapmak istiyorum. Çalma listesine eklemiş olduğum mp3 ve videoları sırasıyla çaldırmak istiyorum. Fakat sıradaki parça video klip ise ayrı bir forumda tam ekran olarak oynatıcak ve klip bittiğinde bu formu kapatarak çalma listesinde sırada ne varsa devam etmesini istiyorum. Burada sorun sıradaki parçanın video mu mp3 mü olduğunu nasıl algılayacağım. Çünkü çalma listesine şarkı isimlerini uzantısı olmadan eklediğim için uzantıyı kontrol edemiyorum. Bunu nasıl yapmalıyım yol gösterirseniz sevinirim.
Re: Video mu Mp3
Üstdadım bu işinizi görür mü bilemiyorum...
Drive = C:
Dir = C:\Program Files\Borland\Delphi7\Projects
Path = C:\Program Files\Borland\Delphi7\Projects\
Name = Unit1.dcu
Ext = .dcu
Kod: Tümünü seç
var
fullFileName : string;
begin
// Set up a full file name with drive and path
fullFileName := 'C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu';
// Show the component parts of this full name
ShowMessage('Drive = '+ExtractFileDrive (fullFileName));
ShowMessage('Dir = '+ExtractFileDir (fullFileName));
ShowMessage('Path = '+ExtractFilePath (fullFileName));
ShowMessage('Name = '+extractfilename (fullFileName));
ShowMessage('Ext = '+ExtractFileExt (fullFileName));
end;
Dir = C:\Program Files\Borland\Delphi7\Projects
Path = C:\Program Files\Borland\Delphi7\Projects\
Name = Unit1.dcu
Ext = .dcu
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Video mu Mp3
Teşekkürler Brs, bir de bu şekilde deneyeyim umarım olur.
Re: Video mu Mp3
Çalma listeniz TStrings türevi bir property'e sahip kontrol ise; bu durumda o listeye TStrings.AddObject ile herhangi bir nesne ekleyebilirsiniz. Aşağıdaki örneğe bir göz gezdirin:
Kod: Tümünü seç
TMediaItem = class
private
fIsAudio : Boolean;
fFileName : String;
public
constructor Create(const AFileName : String);
property IsAudio : Boolean read fIsAudio;
property FileName : String read fFileName;
end;
constructor TMediaItem.Create(const AFileName : String);
begin
inherited Create;
fFileName := AFileName;
fIsAudio := false;
// Burada fFileName'in uzantısına göre fIsAudio alanının değerini true yada false yapan kodu yazın.
end;
// Kullanacağınız noktada..
FileName := 'c:\xyz.mp3';
ListBox.Items.AddObject(FileName, TMediaItem.Create(FileName));
// biçiminde ekleyebilir ve aşağıdaki biçimde de kontrol edebilirsiniz.
var
AnObject : TObject;
begin
AnObject := ListBox1.Items.Objects[ListBox1.ItemIndex];
if Assigned(AnObject) then
if AnObject is TMediaItem then
if TMediaItem(AnObject).IsAudio then ShowMessage('Bu bir audiodur..');
end;
Re: Video mu Mp3
ListBox yerine LisView tercih ederseniz video ve mp3 hakkında daha fazla bilgi ekleyebilirsiniz...
Kolon 1 adı
kolon 2 süresi
kolon 3 video veya mp3' yolu gibi...
Kolon 1 adı
kolon 2 süresi
kolon 3 video veya mp3' yolu gibi...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Video mu Mp3
thelvaci ilginiz ve örneğiniz için teşekkürler fakat vermiş olduğunuz örneği Class oluşturma hakkında yeterli bilgim olmadığı için malesef uyarlamaya çalıştım ama yapamadım. Yinede emeğiniz için teşekkürler.
Re: Video mu Mp3
Yapamayacak neyi var ki ? Zorlandığınız husus neresi ise izah etmeye çalışalım. Çalma listesi için hangi sınıfı kullanıyorsunuz ?Lord_Ares yazdı:thelvaci ilginiz ve örneğiniz için teşekkürler fakat vermiş olduğunuz örneği Class oluşturma hakkında yeterli bilgim olmadığı için malesef uyarlamaya çalıştım ama yapamadım. Yinede emeğiniz için teşekkürler.
Re: Video mu Mp3
Formumda Çalma listesi , Templistbox adında iki adet listbox kullanıyorum.
1) Çalma listesi adlı listboxa , müzik klasörünün içindeki tüm m3 dosyalarının sadece şarkı isimlerini yüklüyorum.
2) Templiste adlı listboxa da yüklenen mp3 lerin , adı ve tam yollarıyla yüklüyorum.
İki adet listbox kullanarak yapmamım sebebi, listboxtaki tüm şarkıları sırayla tek tek sona kadar çalmasını sağlamak. media playera şarkının dosya yolunu vermek zorunda olduğum için bende templistbox adında ikinci bir listbox kullanmak zorunda kaldım. ( farklı bir yol bulamadım )
Sizin verdiğiniz örnekteki TMediaItem classı da type bloğu altında tanımladım.
Constructor TMediaItem.Create kısmınıda implementationın hemen altına ekledim. (Doğru yermi emin değilim). İşte burada ilk hatayı aldım. fFileName değişkenini tanımadığını söyledi.
İlginiz için teşekkürler.
1) Çalma listesi adlı listboxa , müzik klasörünün içindeki tüm m3 dosyalarının sadece şarkı isimlerini yüklüyorum.
2) Templiste adlı listboxa da yüklenen mp3 lerin , adı ve tam yollarıyla yüklüyorum.
İki adet listbox kullanarak yapmamım sebebi, listboxtaki tüm şarkıları sırayla tek tek sona kadar çalmasını sağlamak. media playera şarkının dosya yolunu vermek zorunda olduğum için bende templistbox adında ikinci bir listbox kullanmak zorunda kaldım. ( farklı bir yol bulamadım )
Sizin verdiğiniz örnekteki TMediaItem classı da type bloğu altında tanımladım.
Constructor TMediaItem.Create kısmınıda implementationın hemen altına ekledim. (Doğru yermi emin değilim). İşte burada ilk hatayı aldım. fFileName değişkenini tanımadığını söyledi.
İlginiz için teşekkürler.
Re: Video mu Mp3
Üstadım uste belirtmiştim dikkatinizden kaçmış olabilir, sadece bir listview ile mp3'ün birçok bilgisini tutabilirsiniz...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: Video mu Mp3
TMediaItem'ı kullanabilirseniz zaten iki adet listbox'a da gereksiniminiz kalmayacak. Aşağıdaki kodu type bloğuna kopyalayın:
Cursor'u constructor Create üzerine getirin ve Ctrl+Shift+C tuşlarına basın. Ardından da; constructor'un içini bir önceki örnekte gönderdiğim şekilde ve kendinize özgü değiştirin. Hata vermemesi gerekir.
Kod: Tümünü seç
TMediaItem = class
private
fIsAudio : Boolean;
fFileName : String;
public
constructor Create(const AFileName : String);
property IsAudio : Boolean read fIsAudio;
property FileName : String read fFileName;
end;
Re: Video mu Mp3
Brs, teşekkürler gördüm fakat projeyi listbox ile oluşturdum, dediğine geçmem için epey bir değişiklik yapmam gerekiyor ))
Tuğrul hocam dediniz şekilde ekledim, ama bir yerde hata yapıyorum sanırım. Aşağıdaki şekilde kısa bir if döngüsü ekledim.
Klasördeki mp3 leri listboxa eklerkende şöyle kullandım
forma bir adet button ekleyerek denedim. Listbox2 içinde şarkının tam yolu ve ismi ( c:\xyz.mp3 )yazmasına rağmen IsAudio true olmuyor. Ek bir sorunda eğer listboxta satır seçili değil ise list index out of bounds hatası veriyor.
Birde siz ikinci listboxa ihtiyacınız kalmayacak demişsiniz ama ben listboxta sadece şarkı isimlerini göstermem gerekiyor. Bu şekilde olunca dosya yolu ve ismi görünüyor
Tuğrul hocam dediniz şekilde ekledim, ama bir yerde hata yapıyorum sanırım. Aşağıdaki şekilde kısa bir if döngüsü ekledim.
Kod: Tümünü seç
constructor TMediaItem.Create(const AFileName: String);
begin
inherited Create;
fFileName := AFileName;
fIsAudio := false;
if fFileName='.mp3' then fIsAudio:=true else fIsAudio:=false;
// Burada fFileName'in uzantısına göre fIsAudio alanının değerini true yada false yapan kodu yazın.
end;
Kod: Tümünü seç
Form1.ListBox2.Items.AddObject(yolu, TMediaItem.Create(yolu));
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
AnObject : TObject;
begin
AnObject := ListBox2.Items.Objects[ListBox2.ItemIndex];
if Assigned(AnObject) then
if AnObject is TMediaItem then
if TMediaItem(AnObject).IsAudio then ShowMessage('Bu bir audiodur..') else ShowMessage('Değil..');
end;
Re: Video mu Mp3
Lütfen ama biraz dikkat.... Birinci sorununuz, fFileName = '.mp3' kıyaslamanız. Oysaki constructor'a parametre olarak 'c:\xyz.mp3' geçiyorsunuz ! Dosyanın uzantısını kontrol etmelisiniz constructor'daki kodda. (ExtractFileExt kullanabilirsiniz). İkinci sorununuz; listbox'ın AddObject metodunu aşağıdaki gibi kullanmak:
Oysa şu şekilde kullanmalısınız istediğinize ulaşmak için;
Kod: Tümünü seç
ListBox.Items.AddObject('c:\xyz.mp3', TMediaItem.Create('c:\xyz.mp3'));
Kod: Tümünü seç
ListBox.Items.AddObject('Buraya ne yazmak istiyorsanız artık', TMediaItem.Create('c:\xyz.mp3'));
Re: Video mu Mp3
hocam başta da dediğim gibi, bu konuda acemiyim. constructor hakkında bilgim olmadığı için zorlanıyorum. O yüzden gözümden kaçmış. Dediğiniz gibi
ExtractFileExt ile düzelttim şuan çalışıyor. Fakat en büyük sorun şu kaldı. Listboxta bir satır seçili ise çalışıyor değilse list index out of bounds hatası veriyor. Bunu nasıl aşacağım. Başka bir nesneye (button, edit gibi veya başka bir form açıkken..) tıklarken şarkı değişir ise listboxtaki bu seçililik durumu ortadan kalkacak ve list index out of bounds hatası verecektir.
ExtractFileExt ile düzelttim şuan çalışıyor. Fakat en büyük sorun şu kaldı. Listboxta bir satır seçili ise çalışıyor değilse list index out of bounds hatası veriyor. Bunu nasıl aşacağım. Başka bir nesneye (button, edit gibi veya başka bir form açıkken..) tıklarken şarkı değişir ise listboxtaki bu seçililik durumu ortadan kalkacak ve list index out of bounds hatası verecektir.
Re: Video mu Mp3
ItemIndex'in durumunu kontrol etmelisiniz o durumda. Muhtemelen göreceğiniz değer -1 olacaktır.
Re: Video mu Mp3
Farklı bir form açıp tekrar geri döndüğümde listbox selected durumu devre dışı kaldığı için sıradaki diğer şarkıya geçmiyor. Sizin dediğiniz şekilde
deniyeyim. En son çalan itemindexi bir değişkende tutmayı deneyeceğim. Teşekkürler
deniyeyim. En son çalan itemindexi bir değişkende tutmayı deneyeceğim. Teşekkürler