Gönderen Konu: NZPlayer  (Okunma sayısı 9686 defa)

NZPlayer

« : 14.02.2011 07:41:09 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Bilindik media dosyalarını oynatan Media Player programı...NZPlayer...
Extra özelliği ise bunları D3D ekranında 3D ortamda yapması..
Bir kaç adette bilindik PostProcess efekleri ekledim..
Araçlar : DShow (vmr) , d3d9sprites ..
Alt yazı problemini ise bi aralar düzelticem:)..

Download



NZPlayer

« Yanıtla #1 : 14.02.2011 10:13:20 »
Hızlı düğmeleri aç

endo

İleti: 687

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.moldibi.com
eline saglik, henuz cok baslarda saniyorum o yuzden simdiden su da olsun bu da olsun demeyim, aklinda bi cok sey vardir zaten. mouse-wheel ile zoom in/out guzel olmus ama.
- endo of glance -

NZPlayer

« Yanıtla #2 : 14.02.2011 11:04:37 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
çok güzel olmuş. kod açısından değil de bu sefer arayüz ile ilgili bir önerim olacak. alt bölümdeki kablolar gibi noktalarda bir grafikerin dokunuşu güzel olabilir. kablolar farklı farklı ama iyi seçilmiş renklerde ve formlarda olsa görüntü birden acayip değişir. :)

NZPlayer

« Yanıtla #3 : 19.02.2011 18:09:44 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Grafik olayı herzaman sıkıntı zatende şimdi benim 2 sorum olucak.

1- ShowCursor(enable). olayında istediğim gibi direk cursor çıkıp kaybolmuyo komutu aktif edince..
mesela:
ShowCursor(true) diyorum cursor çıkmıyo direk..biraz bekliyo..kaybedincede aynı çey oluyo cursoru..

2-Alt yazı okuma algoritması lazım..

1
00:00:01,072 --> 00:00:06,006
Çeviri: Otekesa

2
00:02:25,672 --> 00:02:29,859
- Bay Man, yer burası.
- Sana da zahmet oldu.

3
00:02:30,388 --> 00:02:32,199
Ne zahmeti.


şu şekilde bi alt yazı var mesela..
Burdaki verileri nası okutabilirim.?
Biraz bişeyler denedimde parçaların ilk başındaki numaralar işi bozuyo..

NZPlayer

« Yanıtla #4 : 19.02.2011 18:59:50 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
ShowCursor'dan dönen değeri handle ediyor musun? ShowCursor(true) çağırdığında display counter 1 artar. ShowCursor(false) ile bir azalır. display counter fonksiyondan dönen değerdir. Eğer 2 kez ShowCursor(true), sonrasında 1 kez ShowCursor(false) çağırırsan cursor yine visible olur. Yani garantili yöntem;
 
// Hide Cursor
int retVal;
do {
   retVal = ShowCursor(false);
} while(retVal >= 0);
 
// Show Cursor
int retVal;
do {
   retVal = ShowCursor(true);
} while(retVal < 0);
 
olmalıdır.

NZPlayer

« Yanıtla #5 : 19.02.2011 19:06:19 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Diğer sorunu cevaplamamışım. 2 yöntem var
 
1) Regular Expression (ben olsam bunu kullanırdım)
2) Manuel parsing
 
1. yöntem için hazır libraryler var. .NET kullanıyorsan zaten içinde geliyor. Kullanmıyorsan Boost'un güzel bir Regex librarysi var. Başka libraryler de var. Kolaylıkla uygun bir pattern oluşturup halledebilirsin.
 
2. yöntemde ise dosyayı satır satır okuyacaksın. Benim anladığım kadarıyla bu subtitle tipi için
 
struct subtitleItem {
   int id;
   time_t startTime;
   time_t endTime;
   char* text;
}
 
gibi bir yapı yeterli. Elbette ki bunlardan bir collection/linked list tarzı birşey oluşturman lazım. Parsing işlemi ise 1, 2, 3, ... şeklinde giden id satırları olduğu için oldukça basit.
 
1) ilk ID değerini 1 olarak set et.
2) text olarak ID'ye denk gelen satırı bul
3) sonraki satırı start/end time olarak parse et (oldukça basit bir formatı var, kolayca parse edersin)
4) sonraki satırdan itibaren boş satır (ya da peş peşe iki alt satır karakteri \r\n\r\n (ya da linux/mac formatları \r\r - \n\n) görene kadarki tüm satırları "text" olarak oku.
5) okunan bildileri subtitleItem structure'ına gir ve collection'a ekle.
6) ID'yi bir arttır ve 2. adıma geri dön.
 
Umarım açıklayıcı olmuştur.

NZPlayer

« Yanıtla #6 : 23.02.2011 22:21:21 »
Hızlı düğmeleri aç

paradox

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Sağol skate , 2.yola benzer bi şekilde hallettim..
Fırsatını  buluncada Regex kütüphanesine bi bakıcam..merak ettim...