@pavlov ilk önce son sorduğun soruya cevap vereyim.Bir programlama dili ile uğraşıyor musun bilmiyorum.Yinede şöyle bir örnek vereyim.Örneğin C# gibi bir dil ile yazıyorsan lame.exe'yi yazdığın program içinden Process sınıfının Start() methodu ile çalıştırırsın.Fakat lame.exe giriş olarak .wav dosyasını, çıkış olarakta .mp3 konum ve adını aldığı için önce bir ProcessStartInfo sınıfından bir instance oluşturup bunun gerekli üyelerini ayarlarsın.Sonra Process.Start() ile çalıştırırsın.Örneğin;
Process lame = Process.Start(psi); lame.WaitForExit();
Bu kod c:\ deki wav'ı yine c:\'ye mp3file.mp3 olarak dönüştürüp kaydeder.Eğer C gibi bir dil ile kod yazıyorsan CreateProcess API'si ile bu işlemi yapabilirsin.(Forumda bir yerde CreateProcess'in çalışmasını anlatmıştım)Process instance'ının WaitForExit() methodu ise lame.exe'nin işi bitene kadar asıl programı duraksatıyor.
İlk soruna gelince.Dediğin gibi her program kendi dosya formatını oluşturuyor.Örneğin exe ve driver(sys) dosyaları.Bunlar PE formatında dosyalardır.Yapısı şöyledir;
Dosyanın başından başlıyor; MS-DOS HEADER MS-DOS RealMode stub program PE File Signature PE File Header PE Optional Header .text section .bss section .rdata section ......
Bunlar birer yapıdır ve sıralı bir şekilde dosyanın başından itibaren yazılmıştır.(arada unused alanlar var)Ve bu dosyaları tıkladığınızda işletim sistemi yükleyicisi devreye giriyor ve dosyadaki bu yapıları okuyup birçok işlemi gerçekleştiriyor(bellek tahsisi, segment ayarları vb...) İşte Media Player ve bunun gibi programlarda aslında bu mantıkta.Bazı dosya formatlarını tanıyor ve çalıştırıyor.Programlarla bu dosyalar nasıl ilişkilendiriliyor?Yada bir wmv dosyaya tıkladığınızda otomatik Media PLYR nasıl açılıyor?Bunun cevabıda regisry'de arkadaşlar.Şimdi oraya daha fazla girmeyeyim...
Lame, exe ve dll olmak üzere kullanılabiliyor.Source kodu var mı bilmiyorum ama aşağıdaki adresten lib ve exe'yi indirip kullanabilirsiniz..
ayarlarsın.Sonra Process.Start() ile çalıştırırsın.Örneğin;
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = "-c:\\wavfile.wav - c:\\mp3file.mp3";
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = "lame.exe";
Process lame = Process.Start(psi);
lame.WaitForExit();
Bu kod c:\ deki wav'ı yine c:\'ye mp3file.mp3 olarak dönüştürüp kaydeder.Eğer C gibi bir dil ile kod yazıyorsan CreateProcess API'si ile bu işlemi yapabilirsin.(Forumda bir yerde CreateProcess'in çalışmasını anlatmıştım)Process instance'ının WaitForExit() methodu ise lame.exe'nin işi bitene kadar asıl programı duraksatıyor.
İlk soruna gelince.Dediğin gibi her program kendi dosya formatını oluşturuyor.Örneğin exe ve driver(sys) dosyaları.Bunlar PE formatında dosyalardır.Yapısı şöyledir;
Dosyanın başından başlıyor;
MS-DOS HEADER
MS-DOS RealMode stub program
PE File Signature
PE File Header
PE Optional Header
.text section
.bss section
.rdata section
......
Bunlar birer yapıdır ve sıralı bir şekilde dosyanın başından itibaren yazılmıştır.(arada unused alanlar var)Ve bu dosyaları tıkladığınızda işletim sistemi yükleyicisi devreye giriyor ve dosyadaki bu yapıları okuyup birçok işlemi gerçekleştiriyor(bellek tahsisi, segment ayarları vb...)
İşte Media Player ve bunun gibi programlarda aslında bu mantıkta.Bazı dosya formatlarını tanıyor ve çalıştırıyor.Programlarla bu dosyalar nasıl ilişkilendiriliyor?Yada bir wmv dosyaya tıkladığınızda otomatik Media PLYR nasıl açılıyor?Bunun cevabıda regisry'de arkadaşlar.Şimdi oraya daha fazla girmeyeyim...
Lame, exe ve dll olmak üzere kullanılabiliyor.Source kodu var mı bilmiyorum ama aşağıdaki adresten lib ve exe'yi indirip kullanabilirsiniz..
Umarım yardımcı olabilmişimdir.
http://www.rarewares.org/mp3-lame-bundle.php
Bu mesaja 1 cevap geldi. Cevapları Gizle