Ubuntu üzerinde Ses azaltıp arttırma ve Media playerda Şarkı değiştirme C kodu

Başlatan Kaanx, 11 Nisan 2014 - 22:39:30

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

Kaanx

aynen hocam ben kodlarımı GCC üzerinde yazıyorum yani Open source nimetlerinden yararlanmayı hedefliyorum o yuzden GTK + OPENCV+ X11 LİB + Alsa lib + vs... modulleri kullanabiliyorum suan mesela benim headerlarım söyle :)

/*OpenCV C headers `pkg-config --cflags opencv` `pkg-config --libs opencv`  for on GNU */
#include <cv.h>
#include <highgui.h>
#include <iostream>
#include <cmath>
/*MultiTask C headers -pthread For on GNU */
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
/*VLC Headers  gcc test.o -o test $(pkg-config --libs libvlc) */
#include <vlc/vlc.h>


sem

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam sizinle ancak özelden paylaşabilirim tamamlanmadıgı için direk buradan paylaşamıyorum malesef :) Nasip olruda bitirirsem zaten blogumdada paylasıcam ince anlatımlı şekilde inşallah :D Gönderiyim mi isterseniz ?

sem

Yok şahsi olarak dememiştim ben de, bittiğinde de olabilir yani genel olarak kod paylaşımında bulunmayı düşünüyor muydunuz o nedenle sormuştum, ben de bitmesini bekleyebilirim =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Peki hocam tabiki paylaşıcam open source olarak bunu yapıyorum herkese yararımız olsun :) Ben hala GTK kodlarını kendi koduma ekleyemedım yalnız ve Kanal değişimi ve sound işini anlayamadım hocam


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 27 Nisan 2014 - 16:38:18

Hocam suan GTK yı kendi kodlarıma adapte ettim fakat Play stop işlemlerini ekrandan yaptıramıyorum malesef


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 27 Nisan 2014 - 18:35:58

Thread yada multiProcces hakkında bilginiz var mı hocam ?

Kaanx

Alıntı yapılan: sem - 26 Nisan 2014 - 01:23:09
http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__audio.html#ga56911e6b6cd4878796277c19203302a3

Ses işlemleri için yukarıdaki fonksiyonu kullanmak gerekiyor libvlc tarafında.

Önceki yaptığım örnekle ilgili araştırma yaparken anladığım kadarı ile sadece yukarıdaki kodu geliştirmeniz yeterli, çünkü kanal değiştirme IP değiştirme ile aynı. Desteklediğiniz IP'leri kullanıcıya bir liste olarak sunmanız gerek. Daha sonra kullanıcı birisini tıkladığında yukarıdaki örnek için Play buttonuna basıldıktan sonraki işlemleri gerçeklemek gerekli. Daha sonra farklı bir ipye tıklandığında stop'ta yapılan işlemleri yapıp, yeni IP içi Play işlemini tekrar gerçeklemeniz gerekli.

Bunları zaten yaparsınız, örnek kod var çünkü elinizde. Bence asıl soru şu; openCV ile dışarıdan bir buttonu nasıl tıklayacaksınız, derken bir bakınayım dedim, onun da örnek kodu varmış =)

http://opencv-srf.blogspot.com.tr/2011/11/mouse-events.html

Ben sizin yerinizde olsam şeffaf GTK buttonları koyardım gerekli yerlere. Yukarıdaki kodu da tıklama için kullanıp, görünmeyen butonu tetiklerdim. Böylece openCV sadece ekranda kullanıcının elini götürdüğü yeri tespit etmek için ve akabinde bu bölümde bulunan şeffaf GTK buttonuna tıklamak için kullanılmış olacak. VLC ile ilgili tüm işlemleri GTK'ya yıkmış olacaksınız.

Hatta şöyle bir senaryo da uygun olabilir, openCV'yi de C/C++ ile kodluyorsanız GTK+'yı egale ederek, VLC'yi openCV bileşenleri içerisine gömmeyi deneyebilirsiniz. Böylece uğraşmanız gereken sadece iki şey olur; libvlc ve openCV.

Hocam While(1) içindeki kontrol döngüleri içinde GTK palyer fonksiyonlarını calıstıramıyorum tanımalama hatası veriyor dolayısıyla sizin önerdğinz bu çözüm aklıma geldi. Ben Play resminn üzerine elmi getirdğimde GTK player acılıyor ama stream akmaya başlamıyor Oynat butonunu tetikletmek içinse virtual mouse click olusturmayı denedim sizin verdiğiniz örnekten yola cıkarada sonuca ulaştım fakat daha sonra söyle bir sorun cıktı ;

Benm kontrol panelimin üzerindeki yani resimin üzerine herhangi bir yere tıklarsam play stream olusuyor fakat onun dısında bu olusmuyor. Bende söyle dusundum eget video aldıgım o resim ekranının herhangi bir yerinde Auto click yaptırrsam benim moouse ile tıklama gereğim ortadan kalkar ve xdotool denilen şeyle karsılastım. Click işlemlerini gayet güzel yapıyor shell üzerinden fakat çalışma mantıgını tam çözemedim burada da olay şu oluyor ;

ben video control panel imin üzerine bir click verdirmek istiyorum benim VideoControlFrame(640*480) ve ben bunu çalıstırdıgımda ekranda herhangi bir yerde olusabiliyor. tam bir noktası yok. Ben burada Xdotool ile olusan bu pencereyi tanıyıp bulup sonra o pencere üzerinde herhangi bir yere Click nasıl verebilirim ?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 28 Nisan 2014 - 17:51:20

Yada diğer bir yol olarak GTK kndisi olusturdugum butona sanal tıklama verebiliyor mu Hocam ?

http://www.gtk.org/tutorial1.2/gtk_tut-23.html

https://developer.gnome.org/gtk3/stable/GtkWidget.html

http://zetcode.com/tutorials/gtktutorial/gtkevents/ şu linkleri inceledim fakat cıkaramadım malesef

Kaanx

Hocam olayı araya beklem süresi atarak çözdüm fakat. PC kasmaya başladı Play ve stop işlemlerini yaparken 

else if(posX > 540 && posY > 0 && posY < 115)  // PLAY
        {

           // lineColor = blue;
            cvPutText( frame, "PLAY TV", cvpoint, &font, blue );
           /* MultiThread Generating */
              err = pthread_create(&(tid[i]),NULL , &doSomeThing, NULL);
                if (err != 0)
                printf("\ncan't create thread :[%s]", strerror(err));
                 else
                printf("\n Thread created successfully\n");
                  i++;

                  for(int j=0;j<100000000;j++)
                  {}


                  //sleep(1.3);
               /*GTK Player Play Command*/
                on_playpause(playpause_button,media_player);


Örneğin play kısmında böyle bir yol izledim fakat gerçekten 2 3 saniye takılıyor kasıyor daha sonra sistem acılıyor işlemler akmaya başlıyor. Thread olarak sdece GTK çalıştırmasını söyledim ben programa acaba bu neden olabilir mi ? yada yeni thread kosturmam gerek mi her bir komut için ?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Mayıs 2014 - 00:04:13

Ve hocam sizin verdiğiniz tek kanal olarak stream m3u8 playlistte sadece bunlar var buraya yeni kanallar eklemek mümkün olur mu 3 4 kanal daha koyup arasında geçiş sağlayabilirsem Okey gibi bişi olucaz :)

m3u8 file içindekier

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=275181,CODECS="avc1.100.30, mp4a.40.2",RESOLUTION=666x500
chunklist_w626570758.m3u8



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Mayıs 2014 - 00:28:27

buldugum örnekler burada hocam birçok şey denedim fakat kendi listemi olustrudugumda açamıyor diyor

https://github.com/grafov/m3u8/blob/master/sample-playlists/master.m3u8

Sample olarak veridğim sitede inceleyebilirsiniz abim yapmıs ama ben kullanamadım ve ayrıca benim olusturdugum ;

#EXTM3U
# Playlist created by @decent, http://forum.ubuntu-tr.net
#EXTINF:0,ONCU TV
mms://yayin.canlitv.com/oncurtv
#EXTINF:1,TRT HD
mms://95.0.159.130/TRTHD
#EXTINF:2,TRT 1
mms://95.0.159.131/TV1
#EXTINF:3,TRT HABER
mms://95.0.159.131/TV2
#EXTINF:4,TRT 3
mms://95.0.159.131/TV3
#EXTINF:5,TRT 4-COCUK
mms://95.0.159.131/TV4
#EXTINF:6,TRT ANADOLU
mms://95.0.159.138/TV5
#EXTINF:7,TRT 6
mms://95.0.159.131/TV6
#EXTINF:8,TRT TÜRK
mms://95.0.159.131/TRTTURK
#EXTINF:9,TRT AVAZ
mms://95.0.159.138/TRTAVAZ
#EXTINF:10,TRT MÜZİK
mms://95.0.159.131/TRTMUZIK
#EXTINF:11,TRT BELGESEL
mms://95.0.159.131/TRTBELGESEL
#EXTINF:0,TRT OKUL
mms://95.0.159.138/TRTOKUL
#EXTINF:0,AKILLI TV
mms://78.159.112.15:81/1
#EXTINF:12,ATV
mms://yayin.canlitv.com/atv
#EXTINF:13,STAR TV-1
mms://lon-strm01.jumptv.com/startvturk?WMThinning=0&WMContentBitrate=280000&crypt=59735c5e5af6db66bdf68a3ec726f16c29705fa7ddaa62b03ab542af3603802002b3519b3900a0ebcde138cf655c0326a64a700eb469028e17da57f3bea36955f84226f46711ebf0
#EXTINF:14,STAR TV-2
mms://strm-1.uk.medianova.tv/STARTV_HIGH
#EXTINF:15,SHOW TV
mms://wms.45FB.edgecastcdn.net/2045FB/show/TV-ShowTv
#EXTINF:16,SHOW TÜRK
mms://95.211.98.2/tv-showturk?ashes=
#EXTINF:17,KANAL D
mms://yayin.canlitv.com/kanald
#EXTINF:18,TNT TV
mms://yayin.canlitv.com/tnt
#EXTINF:19,FOX TV
mms://yayin.canlitv.com/foxtv
#EXTINF:20,NTV
rtsp://85.111.3.55/ntv
#EXTINF:21,NTV SPOR
rtsp://85.111.3.55/ntvspor
#EXTINF:22,CNBCE
rtsp://85.111.3.55/cnbce
#EXTINF:23,SKYTURK TV
mms://95.211.98.4/TV-skyturk
#EXTINF:24,HABERTURK
mms://yayin.canlitv.com/haberturk
#EXTINF:25,CNN TURK
mms://yayin.canlitv.com/cnnturk
#EXTINF:26,SAMANYOLU TV
mms://208.65.101.208/STVAVRUPA1052E
#EXTINF:27,KANAL 7
mms://yayin.canlitv.com/kanal7
#EXTINF:28,Kanal A
rtsp://88.255.31.105:554/kanala1
#EXTINF:29,Kanal B
mms://212.174.233.141/kanalb
#EXTINF:30,BEYAZ TV
rtsp://212.156.63.46/BEYAZTV
#EXTINF:31,BRT1
mms://bms.brtk.net/brttv
#EXTINF:32,BRT2
mms://bms.brtk.net/brt2
#EXTINF:33,CINE 5
mms://yayin.cine5.com.tr/cine5
#EXTINF:34,KANAL AVRUPA
mms://217.114.212.182/canli?WMContentBitrate=495000
#EXTINF:35,KANAL 3
mms://91.191.163.159/Kanal3tv
#EXTINF:36,TV5
mms://yayin3.canliyayin.org/tv5
#EXTINF:37,YOL TV
mms://85.214.55.224/yol
#EXTINF:38,AZTV
mms://85.132.27.83/aztv/
#EXTINF:39,ÇİZGİFİLM TV
mms://yayin.tv-fm.com/cizgifilmtv
#EXTINF:40,POWERTURK TV
mms://powerturktv-live.o2v2.com/po
#EXTINF:41,WTC TÜRKİYE
mms://webtv.wtcankara.org.tr/NewsTV
#EXTINF:42,Hilal TV
mms://yayin3.canliyayin.org/hilaltv
#EXTINF:43,Expo Channel
mms://yayin.canlitv.com/expochannel
#EXTINF:44,Fox Belgesel
mms://yayin.tv-fm.com/foxbelgesel
#EXTINF:45,Belgesel TV
mms://yayin.tv-fm.com/belgeseltv
#EXTINF:46,Kanal M
mms://yayin.tv-fm.com/kanalm
#EXTINF:47,HD Sinema
mms://yayin.tv-fm.com/sinema
#EXTINF:48,Dance TV
mms://stream02.gtk.hu/dance_tvd
#EXTINF:49,EUROSPORT
mms://a1439.l3192233438.c31922.g.lm.akamaistream.net/D/1439/31922/v0001/reflector:33438
#EXTINF:50,Balkanika TV
mms://85.17.159.104/96853317
#EXTINF:51,FAN TV
mms://85.17.159.104/89923301
#EXTINF:52,Music Box TV
mms://81.89.49.210/musicbox?.wma
#EXTINF:53,NBC News
mms://msnbc.wmod.llnwd.net/a275/e1/video/100/vh.asf
#EXTINF:54,NRJ Dance
mms://vipnrj.yacast.net/nrj_webtv02
#EXTINF:55,NRJ Pop Rock
mms://vipnrj.yacast.net/nrj_webtv03
#EXTINF:56,NRJ Pure
mms://vipnrj.yacast.net/nrj_tvhit
#EXTINF:57,NRJ URBAN
mms://vipnrj.yacast.net/nrj_webtv01
#EXTINF:58,PLAY TV
mms://93.103.4.16/playtv
#EXTINF:59,ESKA TV
mms://streamtv.eska.pl:6000/eskatv
#EXTINF:60,NASA TV
mms://mid.video.csupomona.edu/liveTwo-245
#EXTINF:61,SKY NEWS
mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k
#EXTINF:62,CBN NEWS
mms://cbn-news.wm.llnwd.net/cbn_news
#EXTINF:63,WILD LIFE CHANNEL
mms://streaming.i2i-technology.com/wlc_6500



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Mayıs 2014 - 00:29:42

http://forum.pardus.net.tr/index.php?topic=852.0 buradada vlc üzerinde olusturulmus bir örnek var hocam


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 02 Mayıs 2014 - 00:36:19

Bunuda paylaşim dedim hocam :)

http://www.satpcturkey.com/threads/1132-IP-TV-T%C3%BCrk/page2

Kaanx


sem

Bahsettiğinize göre (özelden) GTK ve VLC ile yapılmış. Sizin için biçilmiş kaftan olabilir. kodları incelediniz mi işinize yarayan öbekler var mı? gtk_list nesnesi kullanılmış mı örneğin?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam ben size özelden kodları  göndermiştim şimdı bulamıyorum :) inceleyemedim yani henüz :)


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 07 Mayıs 2014 - 10:46:31

hocam söyle buldum fakat umarım dogru bulmusumdur bunları kullanabilir miyim benim GTK tarafında pek bir bilgim yok malesef o yuzden cıkarmadım işlemleri 

https://code.google.com/p/freetuxtv/source/browse/#svn%2Fbranches%2Ffreetuxtv-0.5.x%2Flib%2Flibvlc-gtk


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 07 Mayıs 2014 - 11:15:08

sanırım adapte kısmıdna sızden yardım almam gerek hocam :)

Kaanx

hocam yeni sürprizim bu oldu snaırım :) http://www.mplayer2.org/docs/mplayer/ burada butonlarla işimi haleldebiliyoruz aslında direk :) yani bash ekrandan klavyeden gelen komutlara göre kontrol ediyoruz :)

sem

Şimdi anlayamadığım kısmı belirteyim.

VLC  kütüphaneleri ile Stream okuyabiliyoruz. Play/Stop yapabiliyoruz. Siz zaten openCV tarafını hallettiğinizi belirtmiştiniz. Bu durumda sorun nerede anlayamadım tam olarak: Kullanıcıya liste göstermek, bu liste arasından seçilen stream'i göstermek mi? Tam olarak takıldığınız konu nedir?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam suan olay kullanıca bir liste göstermek değilde m3u file içinde olan kanallarım arasında geçiş yapabilmek. ileri geri kanal değişimi işte sadece. Play stop yapabiliyruz evet.

örnek m3u file

#EXTM3U
# Playlist created by @decent, http://forum.ubuntu-tr.net
#EXTINF:0,ONCU TV
mms://yayin.canlitv.com/oncurtv
#EXTINF:1,TRT HD
mms://95.0.159.130/TRTHD
#EXTINF:2,TRT 1
mms://95.0.159.131/TV1
#EXTINF:3,TRT HABER
mms://95.0.159.131/TV2
#EXTINF:4,TRT 3
mms://95.0.159.131/TV3
#EXTINF:5,TRT 4-COCUK
mms://95.0.159.131/TV4
#EXTINF:6,TRT ANADOLU
mms://95.0.159.138/TV5
#EXTINF:7,TRT 6
mms://95.0.159.131/TV6
#EXTINF:8,TRT TÜRK
mms://95.0.159.131/TRTTURK
#EXTINF:9,TRT AVAZ
mms://95.0.159.138/TRTAVAZ
#EXTINF:10,TRT MÜZİK
mms://95.0.159.131/TRTMUZIK
#EXTINF:11,TRT BELGESEL
mms://95.0.159.131/TRTBELGESEL
#EXTINF:0,TRT OKUL
mms://95.0.159.138/TRTOKUL
#EXTINF:0,AKILLI TV
mms://78.159.112.15:81/1
#EXTINF:12,ATV
mms://yayin.canlitv.com/atv
#EXTINF:13,STAR TV-1
mms://lon-strm01.jumptv.com/startvturk?WMThinning=0&WMContentBitrate=280000&crypt=59735c5e5af6db66bdf68a3ec726f16c29705fa7ddaa62b03ab542af3603802002b3519b3900a0ebcde138cf655c0326a64a700eb469028e17da57f3bea36955f84226f46711ebf0
#EXTINF:14,STAR TV-2
mms://strm-1.uk.medianova.tv/STARTV_HIGH
#EXTINF:15,SHOW TV
mms://wms.45FB.edgecastcdn.net/2045FB/show/TV-ShowTv
#EXTINF:16,SHOW TÜRK
mms://95.211.98.2/tv-showturk?ashes=
#EXTINF:17,KANAL D
mms://yayin.canlitv.com/kanald
#EXTINF:18,TNT TV
mms://yayin.canlitv.com/tnt
#EXTINF:19,FOX TV
mms://yayin.canlitv.com/foxtv
#EXTINF:20,NTV
rtsp://85.111.3.55/ntv
#EXTINF:21,NTV SPOR
rtsp://85.111.3.55/ntvspor
#EXTINF:22,CNBCE
rtsp://85.111.3.55/cnbce
#EXTINF:23,SKYTURK TV
mms://95.211.98.4/TV-skyturk
#EXTINF:24,HABERTURK
mms://yayin.canlitv.com/haberturk
#EXTINF:25,CNN TURK
mms://yayin.canlitv.com/cnnturk
#EXTINF:26,SAMANYOLU TV
mms://208.65.101.208/STVAVRUPA1052E
#EXTINF:27,KANAL 7
mms://yayin.canlitv.com/kanal7
#EXTINF:28,Kanal A
rtsp://88.255.31.105:554/kanala1
#EXTINF:29,Kanal B
mms://212.174.233.141/kanalb
#EXTINF:30,BEYAZ TV
rtsp://212.156.63.46/BEYAZTV
#EXTINF:31,BRT1
mms://bms.brtk.net/brttv
#EXTINF:32,BRT2
mms://bms.brtk.net/brt2
#EXTINF:33,CINE 5
mms://yayin.cine5.com.tr/cine5
#EXTINF:34,KANAL AVRUPA
mms://217.114.212.182/canli?WMContentBitrate=495000
#EXTINF:35,KANAL 3
mms://91.191.163.159/Kanal3tv
#EXTINF:36,TV5
mms://yayin3.canliyayin.org/tv5
#EXTINF:37,YOL TV
mms://85.214.55.224/yol
#EXTINF:38,AZTV
mms://85.132.27.83/aztv/
#EXTINF:39,ÇİZGİFİLM TV
mms://yayin.tv-fm.com/cizgifilmtv
#EXTINF:40,POWERTURK TV
mms://powerturktv-live.o2v2.com/po
#EXTINF:41,WTC TÜRKİYE
mms://webtv.wtcankara.org.tr/NewsTV
#EXTINF:42,Hilal TV
mms://yayin3.canliyayin.org/hilaltv
#EXTINF:43,Expo Channel
mms://yayin.canlitv.com/expochannel
#EXTINF:44,Fox Belgesel
mms://yayin.tv-fm.com/foxbelgesel
#EXTINF:45,Belgesel TV
mms://yayin.tv-fm.com/belgeseltv
#EXTINF:46,Kanal M
mms://yayin.tv-fm.com/kanalm
#EXTINF:47,HD Sinema
mms://yayin.tv-fm.com/sinema
#EXTINF:48,Dance TV
mms://stream02.gtk.hu/dance_tvd
#EXTINF:49,EUROSPORT
mms://a1439.l3192233438.c31922.g.lm.akamaistream.net/D/1439/31922/v0001/reflector:33438
#EXTINF:50,Balkanika TV
mms://85.17.159.104/96853317
#EXTINF:51,FAN TV
mms://85.17.159.104/89923301
#EXTINF:52,Music Box TV
mms://81.89.49.210/musicbox?.wma
#EXTINF:53,NBC News
mms://msnbc.wmod.llnwd.net/a275/e1/video/100/vh.asf
#EXTINF:54,NRJ Dance
mms://vipnrj.yacast.net/nrj_webtv02
#EXTINF:55,NRJ Pop Rock
mms://vipnrj.yacast.net/nrj_webtv03
#EXTINF:56,NRJ Pure
mms://vipnrj.yacast.net/nrj_tvhit
#EXTINF:57,NRJ URBAN
mms://vipnrj.yacast.net/nrj_webtv01
#EXTINF:58,PLAY TV
mms://93.103.4.16/playtv
#EXTINF:59,ESKA TV
mms://streamtv.eska.pl:6000/eskatv
#EXTINF:60,NASA TV
mms://mid.video.csupomona.edu/liveTwo-245
#EXTINF:61,SKY NEWS
mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k
#EXTINF:62,CBN NEWS
mms://cbn-news.wm.llnwd.net/cbn_news
#EXTINF:63,WILD LIFE CHANNEL
mms://streaming.i2i-technology.com/wlc_6500



biz şuan verdiğiniz linkteki https://forum.ubuntu-tr.net/index.php?topic=42990.msg504360#msg504360  olaya göre tek bir kanaldan stream alabiliyoruz. amaç böyle bir dosyadan stream playlist cekmek.

sem

İşin bu aşaması yani bu dosyayı okuman GTK değil ama aslında tam olarak. ANSI C ile de dosyayı okuyabilirsiniz. Akabinde yine GTK'ya geçiyor olay. Yani okudumuzu listelemek. Yanılıyor muyum?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam vlc de stream olarak IPTV gibi işte olayımız aslında listelemek falan da ddeğil mesala sunu bi deneyebilir misiniz vlc yüklüyse pc nizde

vlc -vvv https://dl.dropbox.com/s/sck6kcuy5h540ds/TV_KANALLARI.m3u?dl=1


bu kodla stream almaya baslıyor ve o listedk kanallara göre değişim yapabiliyorum ben bu butonların işlerni kodda yapıcam yani 

sem

Şimdi stop var, alınan bir stream'i durdurabiliyoruz. Bir stream'i çalabiliyoruz.

Yani start stop yapabiliyoruz. "Next" butonu yani sonraki kanala geçmek için yapmak gereken mevcut çalanı durdur, yeni bir URL'den stream alarak göster. 

Şöyle bir varsayımda bulundum, mesela liste için bir dosya yapılsa, bu dosyadan sonraki kanal tıklandıkça dosyadan sonraki kanalı çalsa. Burada elimizde olmayan tek kod var, dosya içerisinde iterasyon yapma yani dosyadan verilen satırdaki stream bilgilerini alma işlemi. Bu nasıl yapılabilir; bir dosya içerisine;

STREAM BAŞLIK
STREAM URL
STREAM BAŞLIK
STREAM URL
...

şeklinde yazdığımızı farz edelim. Bu durumda aşağıdaki kodun çıktısını alarak yani URL ve Başlığı, yukarıda kaynak kodunu paylaştığım start stop işlemine göndermeniz kanal değiştirmeniz için yeterli. Burada bir sorun var mı?


#EXTINF:0,ONCU TV
mms://yayin.canlitv.com/oncurtv
#EXTINF:1,TRT HD
mms://95.0.159.130/TRTHD
#EXTINF:2,TRT 1
mms://95.0.159.131/TV1
#EXTINF:3,TRT HABER
mms://95.0.159.131/TV2
#EXTINF:4,TRT 3
mms://95.0.159.131/TV3
#EXTINF:5,TRT 4-COCUK
mms://95.0.159.131/TV4
#EXTINF:6,TRT ANADOLU
mms://95.0.159.138/TV5
#EXTINF:7,TRT 6
mms://95.0.159.131/TV6
#EXTINF:8,TRT TÜRK
mms://95.0.159.131/TRTTURK
#EXTINF:9,TRT AVAZ
mms://95.0.159.138/TRTAVAZ
#EXTINF:10,TRT MÜZİK
mms://95.0.159.131/TRTMUZIK
#EXTINF:11,TRT BELGESEL
mms://95.0.159.131/TRTBELGESEL
#EXTINF:0,TRT OKUL
mms://95.0.159.138/TRTOKUL
#EXTINF:0,AKILLI TV
mms://78.159.112.15:81/1
#EXTINF:12,ATV
mms://yayin.canlitv.com/atv
#EXTINF:13,STAR TV-1
mms://lon-strm01.jumptv.com/startvturk?WMThinning=0&WMContentBitrate=280000&crypt=59735c5e5af6db66bdf68a3ec726f16c29705fa7ddaa62b03ab542af3603802002b3519b3900a0ebcde138cf655c0326a64a700eb469028e17da57f3bea36955f84226f46711ebf0
#EXTINF:14,STAR TV-2
mms://strm-1.uk.medianova.tv/STARTV_HIGH
#EXTINF:15,SHOW TV
mms://wms.45FB.edgecastcdn.net/2045FB/show/TV-ShowTv
#EXTINF:16,SHOW TÜRK
mms://95.211.98.2/tv-showturk?ashes=
#EXTINF:17,KANAL D
mms://yayin.canlitv.com/kanald
#EXTINF:18,TNT TV
mms://yayin.canlitv.com/tnt
#EXTINF:19,FOX TV
mms://yayin.canlitv.com/foxtv
#EXTINF:20,NTV
rtsp://85.111.3.55/ntv
#EXTINF:21,NTV SPOR
rtsp://85.111.3.55/ntvspor
#EXTINF:22,CNBCE
rtsp://85.111.3.55/cnbce
#EXTINF:23,SKYTURK TV
mms://95.211.98.4/TV-skyturk
#EXTINF:24,HABERTURK
mms://yayin.canlitv.com/haberturk
#EXTINF:25,CNN TURK
mms://yayin.canlitv.com/cnnturk
#EXTINF:26,SAMANYOLU TV
mms://208.65.101.208/STVAVRUPA1052E
#EXTINF:27,KANAL 7
mms://yayin.canlitv.com/kanal7
#EXTINF:28,Kanal A
rtsp://88.255.31.105:554/kanala1
#EXTINF:29,Kanal B
mms://212.174.233.141/kanalb
#EXTINF:30,BEYAZ TV
rtsp://212.156.63.46/BEYAZTV
#EXTINF:31,BRT1
mms://bms.brtk.net/brttv
#EXTINF:32,BRT2
mms://bms.brtk.net/brt2
#EXTINF:33,CINE 5
mms://yayin.cine5.com.tr/cine5
#EXTINF:34,KANAL AVRUPA
mms://217.114.212.182/canli?WMContentBitrate=495000
#EXTINF:35,KANAL 3
mms://91.191.163.159/Kanal3tv
#EXTINF:36,TV5
mms://yayin3.canliyayin.org/tv5
#EXTINF:37,YOL TV
mms://85.214.55.224/yol
#EXTINF:38,AZTV
mms://85.132.27.83/aztv/
#EXTINF:39,ÇİZGİFİLM TV
mms://yayin.tv-fm.com/cizgifilmtv
#EXTINF:40,POWERTURK TV
mms://powerturktv-live.o2v2.com/po
#EXTINF:41,WTC TÜRKİYE
mms://webtv.wtcankara.org.tr/NewsTV
#EXTINF:42,Hilal TV
mms://yayin3.canliyayin.org/hilaltv
#EXTINF:43,Expo Channel
mms://yayin.canlitv.com/expochannel
#EXTINF:44,Fox Belgesel
mms://yayin.tv-fm.com/foxbelgesel
#EXTINF:45,Belgesel TV
mms://yayin.tv-fm.com/belgeseltv
#EXTINF:46,Kanal M
mms://yayin.tv-fm.com/kanalm
#EXTINF:47,HD Sinema
mms://yayin.tv-fm.com/sinema
#EXTINF:48,Dance TV
mms://stream02.gtk.hu/dance_tvd
#EXTINF:49,EUROSPORT
mms://a1439.l3192233438.c31922.g.lm.akamaistream.net/D/1439/31922/v0001/reflector:33438
#EXTINF:50,Balkanika TV
mms://85.17.159.104/96853317
#EXTINF:51,FAN TV
mms://85.17.159.104/89923301
#EXTINF:52,Music Box TV
mms://81.89.49.210/musicbox?.wma
#EXTINF:53,NBC News
mms://msnbc.wmod.llnwd.net/a275/e1/video/100/vh.asf
#EXTINF:54,NRJ Dance
mms://vipnrj.yacast.net/nrj_webtv02
#EXTINF:55,NRJ Pop Rock
mms://vipnrj.yacast.net/nrj_webtv03
#EXTINF:56,NRJ Pure
mms://vipnrj.yacast.net/nrj_tvhit
#EXTINF:57,NRJ URBAN
mms://vipnrj.yacast.net/nrj_webtv01
#EXTINF:58,PLAY TV
mms://93.103.4.16/playtv
#EXTINF:59,ESKA TV
mms://streamtv.eska.pl:6000/eskatv
#EXTINF:60,NASA TV
mms://mid.video.csupomona.edu/liveTwo-245
#EXTINF:61,SKY NEWS
mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k
#EXTINF:62,CBN NEWS
mms://cbn-news.wm.llnwd.net/cbn_news
#EXTINF:63,WILD LIFE CHANNEL
mms://streaming.i2i-technology.com/wlc_6500


İstediğimiz satırdaki kanal bilgisini gösteren kod:


#include<stdio.h>
#include<stdlib.h>
int countlines(char *filename);
void main(int argc, char *argv[])
{
  printf(":Kanal Sayısı: %d\n", validate_file("list.pl") / 2);         
  get_header_and_url("list.pl", 10);
}
int validate_file(char *file_name){
    FILE *fp = fopen(file_name,"r");
    int ch=0;
    int lines=0;
    while(!feof(fp)){
        ch = fgetc(fp);
        if(ch == '\n'){
            lines++;
        }
   }  
   if(lines % 2 != 0){
        fprintf(stdout, "Dosya satır sayısı hatalı. Dosya bir başlık bir URL içerek şekilde çift satır sayısı içermelidir.\nMevcut satır sayısı: %d\n", lines);
   }else{
        fprintf(stdout, "Satır sayısı sorunsuz.");
   }
   fclose(fp);
   return lines;
}
int get_header_and_url(char *file_name, int line_number){
    line_number = line_number * 2 - 1;
    FILE *file = fopen(file_name, "r");
    int count = 1;
    if ( file != NULL ){
        char line[256];
        while(fgets(line, sizeof line, file) != NULL){
        if (count == line_number){
            fprintf(stdout, "İstenen kanal başlığı %s", line);
            fgets(line, sizeof line, file);
            fprintf(stdout, "İstenen kanal URL %s\n", line);        
            break;
        }else{
                count++;
            }
        }
        fclose(file);
    }
}


Tabi validasyonu vs. siz kendi mantığınıza/uygulamanıza (yani logic'inize göre yapmalısınız, benim varsayımıma göre bir dosya çift karakter içermelidir örneğin)... 
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Alıntı yapılan: sem - 10 Mayıs 2014 - 01:54:44
Şimdi stop var, alınan bir stream'i durdurabiliyoruz. Bir stream'i çalabiliyoruz.

Yani start stop yapabiliyoruz. "Next" butonu yani sonraki kanala geçmek için yapmak gereken mevcut çalanı durdur, yeni bir URL'den stream alarak göster.

Şöyle bir varsayımda bulundum, mesela liste için bir dosya yapılsa, bu dosyadan sonraki kanal tıklandıkça dosyadan sonraki kanalı çalsa. Burada elimizde olmayan tek kod var, dosya içerisinde iterasyon yapma yani dosyadan verilen satırdaki stream bilgilerini alma işlemi. Bu nasıl yapılabilir; bir dosya içerisine;

STREAM BAŞLIK
STREAM URL
STREAM BAŞLIK
STREAM URL
...

şeklinde yazdığımızı farz edelim. Bu durumda aşağıdaki kodun çıktısını alarak yani URL ve Başlığı, yukarıda kaynak kodunu paylaştığım start stop işlemine göndermeniz kanal değiştirmeniz için yeterli. Burada bir sorun var mı?


#EXTINF:0,ONCU TV
mms://yayin.canlitv.com/oncurtv
#EXTINF:1,TRT HD
mms://95.0.159.130/TRTHD
#EXTINF:2,TRT 1
mms://95.0.159.131/TV1
#EXTINF:3,TRT HABER
mms://95.0.159.131/TV2
#EXTINF:4,TRT 3
mms://95.0.159.131/TV3
#EXTINF:5,TRT 4-COCUK
mms://95.0.159.131/TV4
#EXTINF:6,TRT ANADOLU
mms://95.0.159.138/TV5
#EXTINF:7,TRT 6
mms://95.0.159.131/TV6
#EXTINF:8,TRT TÜRK
mms://95.0.159.131/TRTTURK
#EXTINF:9,TRT AVAZ
mms://95.0.159.138/TRTAVAZ
#EXTINF:10,TRT MÜZİK
mms://95.0.159.131/TRTMUZIK
#EXTINF:11,TRT BELGESEL
mms://95.0.159.131/TRTBELGESEL
#EXTINF:0,TRT OKUL
mms://95.0.159.138/TRTOKUL
#EXTINF:0,AKILLI TV
mms://78.159.112.15:81/1
#EXTINF:12,ATV
mms://yayin.canlitv.com/atv
#EXTINF:13,STAR TV-1
mms://lon-strm01.jumptv.com/startvturk?WMThinning=0&WMContentBitrate=280000&crypt=59735c5e5af6db66bdf68a3ec726f16c29705fa7ddaa62b03ab542af3603802002b3519b3900a0ebcde138cf655c0326a64a700eb469028e17da57f3bea36955f84226f46711ebf0
#EXTINF:14,STAR TV-2
mms://strm-1.uk.medianova.tv/STARTV_HIGH
#EXTINF:15,SHOW TV
mms://wms.45FB.edgecastcdn.net/2045FB/show/TV-ShowTv
#EXTINF:16,SHOW TÜRK
mms://95.211.98.2/tv-showturk?ashes=
#EXTINF:17,KANAL D
mms://yayin.canlitv.com/kanald
#EXTINF:18,TNT TV
mms://yayin.canlitv.com/tnt
#EXTINF:19,FOX TV
mms://yayin.canlitv.com/foxtv
#EXTINF:20,NTV
rtsp://85.111.3.55/ntv
#EXTINF:21,NTV SPOR
rtsp://85.111.3.55/ntvspor
#EXTINF:22,CNBCE
rtsp://85.111.3.55/cnbce
#EXTINF:23,SKYTURK TV
mms://95.211.98.4/TV-skyturk
#EXTINF:24,HABERTURK
mms://yayin.canlitv.com/haberturk
#EXTINF:25,CNN TURK
mms://yayin.canlitv.com/cnnturk
#EXTINF:26,SAMANYOLU TV
mms://208.65.101.208/STVAVRUPA1052E
#EXTINF:27,KANAL 7
mms://yayin.canlitv.com/kanal7
#EXTINF:28,Kanal A
rtsp://88.255.31.105:554/kanala1
#EXTINF:29,Kanal B
mms://212.174.233.141/kanalb
#EXTINF:30,BEYAZ TV
rtsp://212.156.63.46/BEYAZTV
#EXTINF:31,BRT1
mms://bms.brtk.net/brttv
#EXTINF:32,BRT2
mms://bms.brtk.net/brt2
#EXTINF:33,CINE 5
mms://yayin.cine5.com.tr/cine5
#EXTINF:34,KANAL AVRUPA
mms://217.114.212.182/canli?WMContentBitrate=495000
#EXTINF:35,KANAL 3
mms://91.191.163.159/Kanal3tv
#EXTINF:36,TV5
mms://yayin3.canliyayin.org/tv5
#EXTINF:37,YOL TV
mms://85.214.55.224/yol
#EXTINF:38,AZTV
mms://85.132.27.83/aztv/
#EXTINF:39,ÇİZGİFİLM TV
mms://yayin.tv-fm.com/cizgifilmtv
#EXTINF:40,POWERTURK TV
mms://powerturktv-live.o2v2.com/po
#EXTINF:41,WTC TÜRKİYE
mms://webtv.wtcankara.org.tr/NewsTV
#EXTINF:42,Hilal TV
mms://yayin3.canliyayin.org/hilaltv
#EXTINF:43,Expo Channel
mms://yayin.canlitv.com/expochannel
#EXTINF:44,Fox Belgesel
mms://yayin.tv-fm.com/foxbelgesel
#EXTINF:45,Belgesel TV
mms://yayin.tv-fm.com/belgeseltv
#EXTINF:46,Kanal M
mms://yayin.tv-fm.com/kanalm
#EXTINF:47,HD Sinema
mms://yayin.tv-fm.com/sinema
#EXTINF:48,Dance TV
mms://stream02.gtk.hu/dance_tvd
#EXTINF:49,EUROSPORT
mms://a1439.l3192233438.c31922.g.lm.akamaistream.net/D/1439/31922/v0001/reflector:33438
#EXTINF:50,Balkanika TV
mms://85.17.159.104/96853317
#EXTINF:51,FAN TV
mms://85.17.159.104/89923301
#EXTINF:52,Music Box TV
mms://81.89.49.210/musicbox?.wma
#EXTINF:53,NBC News
mms://msnbc.wmod.llnwd.net/a275/e1/video/100/vh.asf
#EXTINF:54,NRJ Dance
mms://vipnrj.yacast.net/nrj_webtv02
#EXTINF:55,NRJ Pop Rock
mms://vipnrj.yacast.net/nrj_webtv03
#EXTINF:56,NRJ Pure
mms://vipnrj.yacast.net/nrj_tvhit
#EXTINF:57,NRJ URBAN
mms://vipnrj.yacast.net/nrj_webtv01
#EXTINF:58,PLAY TV
mms://93.103.4.16/playtv
#EXTINF:59,ESKA TV
mms://streamtv.eska.pl:6000/eskatv
#EXTINF:60,NASA TV
mms://mid.video.csupomona.edu/liveTwo-245
#EXTINF:61,SKY NEWS
mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k
#EXTINF:62,CBN NEWS
mms://cbn-news.wm.llnwd.net/cbn_news
#EXTINF:63,WILD LIFE CHANNEL
mms://streaming.i2i-technology.com/wlc_6500


İstediğimiz satırdaki kanal bilgisini gösteren kod:


#include<stdio.h>
#include<stdlib.h>
int countlines(char *filename);
void main(int argc, char *argv[])
{
  printf(":Kanal Sayısı: %d\n", validate_file("list.pl") / 2);         
  get_header_and_url("list.pl", 10);
}
int validate_file(char *file_name){
    FILE *fp = fopen(file_name,"r");
    int ch=0;
    int lines=0;
    while(!feof(fp)){
        ch = fgetc(fp);
        if(ch == '\n'){
            lines++;
        }
   } 
   if(lines % 2 != 0){
        fprintf(stdout, "Dosya satır sayısı hatalı. Dosya bir başlık bir URL içerek şekilde çift satır sayısı içermelidir.\nMevcut satır sayısı: %d\n", lines);
   }else{
        fprintf(stdout, "Satır sayısı sorunsuz.");
   }
   fclose(fp);
   return lines;
}
int get_header_and_url(char *file_name, int line_number){
    line_number = line_number * 2 - 1;
    FILE *file = fopen(file_name, "r");
    int count = 1;
    if ( file != NULL ){
        char line[256];
        while(fgets(line, sizeof line, file) != NULL){
        if (count == line_number){
            fprintf(stdout, "İstenen kanal başlığı %s", line);
            fgets(line, sizeof line, file);
            fprintf(stdout, "İstenen kanal URL %s\n", line);       
            break;
        }else{
                count++;
            }
        }
        fclose(file);
    }
}


Tabi validasyonu vs. siz kendi mantığınıza/uygulamanıza (yani logic'inize göre yapmalısınız, benim varsayımıma göre bir dosya çift karakter içermelidir örneğin)...

Hocam aynen acıklamalarınız bu sekılde dogru :) . Fakat affınıza sıgınıyorum ben kod kısmını pek anlayamdım burada normal bir C kodu ile file acıp okuma işlmemi yapıyoruz ? Ynai GTK da ileri geri buttonalrı koyup bu kodu koşabilir miyiz ?=


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 10 Mayıs 2014 - 14:03:22

Sonucta bu kod hangi satırda hangi kanal var onu gösteriyor fakat bizim GTK playerımızda bu kanallar arası değişim yapamıyoruz sadece play stop özellği var yani ileri geri butonuda eklmemiz gerekiyor sanırım ? ve o butona basınca akan stream durucak diğer stream play alıcak ?

void kanal_ileri(gtkwidget *widget , gpointer data){
if(stream1_kanal= çalısıyorsa);
stop(stream1_kanal);
diğer_kanal(stream2_kanal_başla );



}


int main(){


kanal_ileri ();
}


gibi bir mantık yapmamız gerekiyor sanırım


sem

KaanX selamlar...

Bir konuya odaklanmayalım... Kanal değiştirmeyi çıkaralım şimdi aklımızdan. Şöyle gidelim... Bir buttona bastığımızda olayı yakalayabiliyoruz ve play vs işlemleri yapabiliyoruz. Yukarıda örnek de var.

Şuradan devam edelim, bana  iki buttonlu bir GTK uygulama örneği gönderebilirmisiniz. Sadece sayı sayması yeterli. Sağdakine basında printf() ile 1 yazsın, bir daha basınca 2 yazsın, bir daha basınca 3 yazsın. Soldaki de tam tersi.. 3 yazmışken en son soldakina basınca 2 yazsın... Bir daha basınca bir yazsın...

İki buttonlu bir GTK uygulaması... Bu örnek kodu bana derleyebileceğim şekilde bu başlıktan code etiketi ile paylaşabilir misiniz? Buradan devam edelim. Hem mantığını görerek ilerlemiş oluruz.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam kendim yazamadım bu yüzden en yakın örnek olarak bunu paylaşıyorum sizinle http://www.gtkforums.com/viewtopic.php?t=4285 dediğiniz işlemleri oluşturamadım malesef

sem

Merhabalar, umarım kusura bakmazsınız, art niyetsiz yazacağım ama yanlış anlama ihtimaliniz olabilir diye düşünüyorum. Fakat yine de yazacağım.


Bence gidip hocanızla konuşun ve ödevi tamamlayamayacağınızı bildirin, bu sadece benim size tavsiyem tabi, elbette sonuçta karar sizin. Çünkü bu başlık altında aslında projeyi tamamlayacabileceğiniz kadar kod gönderdim, örnek kod paylaştım, gerekli yerleri sizin için revize ettim. NŞA'da ödevin bu tarafını tamamlayabileceğiniz kadar örnek var elinizde. Okuduğnuz bölümde ana ya da seçmeli derslerde ne kadar yazılıma ağırlık veriliyor bilemiyorum, bu nedenle ödevi sonlandıracak kadar en azından GTK ve VLC Library ayağını tamamlayacak kadar elinizde kod olduğunu görememeniz, yazılım ile çok içli dışlı olmadığnıız için ya da okduğunuz bölümün doğası gereği olabilir. Bu konuda bir bilgim yok ama böyle bir ihtimal elbette bu nedenle asla bunu garip karşılamam.

Bunun için yani elimizdekinin yeterli olduğunu gösterebilmek adına, ufak ufak gitmek istedim ve rica ettiğim örnek kod buna yönelikti. Dediğim gibi bu örnek sonucunda aslında yukarıda yazdığımı size pratikte göstermeyi hedefliyordum;

1. Adım- Ufak bir sayma uygulaması; sağ button ileri doğru sol button geri doğru saymalı.
2. Adım- Button işlevlerini, benim size gönderdiğim dosya okuma kodu ile değiştirme. sağ button dosyadan okunan satır sayısını arttıaracak, sol taraf  eksiltecek.
3. Adım- Buttonlar'ın click event'leri arttırma ve eksiltme yaparken, play() + stop() kodlarını bu buttonlara ekleme (yukarıda play ve stop u paylaşmıştım). Böylece bir buttona basınca kanalımız ileri doğru, sol buttona basınca kanalımız geri doğru değişecekti.

Fakat 1.adımda sorun varsa bir sorunumuz var demektir. En büyük sorun ise bu kodları sıfırdan yazmayacaksınız, yukarıdaki uygulamayı revize edeceksiniz, bunun farkındalığı. Play tuşuna basınca 1,2,3,4 diye Stop tuşuna basınca 4,3,2,1 diye sayacaksınız, olay bu aslında. Fakat yapamadım demişsiniz ama ne kadarını yapamadığınızı  ya da nerede takıldığınızı da belirtmemişsiniz, farklı birisinden örnek kod paylaşmışsınız. Gördüğüm kadarı ile GTK tarafında sıfır kod yazmayı planlıyorsunuz ödevi tamamladığınızda.

Direk bir klasiğin altına imzamı atabiliriz;  hocanız size göstermediği şeylerden, karmaşık bir ödev istemiş... Bu nedenle hocanıza vaziyeti bildirebilirsiniz. Göstermediğiniz şeyleri istiyorsunuz deyin mesela hocanıza. Öğrettiklerinizle bu ödev yapılamaz diyebilirsiniz.

Ama hocanız bir üniversite öğrencisi olarak araştırmanızı bekliyordur diye tahmin ediyorum aslında.

Ben şu anda GTK tarafını benden yazmamı istediğinizi anlıyorum. Forumdaki herkesin yaptığı gibi bilgim olan konuda elimden geldiğince size yardım etmeye çalışırım fakat ödevinizi yapmayacağım maalesef =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Kaanx

Hocam sizi gayet iyi anlıyorum. Fakat su konuda süpheniz olmasın amacım asla size ödevimi yaptırmak değil. Cok tesekkur ederim bu güne kadar inanın cok yardımınız dokunda bana fakat dediğinizi gibi biz okulda sadece 1 dönem C gördük. Gerisini ben kendim çalışaraak bişiler yapmaya calıstım. Hocamız python ile ilgileniyor ve debian kullanıyor diye bana bunu önerdi eminim kendisininde bu konuda bana yardımcı olabileceğini sanmıyorum. Aynı zamanda parttime olarak çalısıyorum ve genelde hocamla karsılasma sansım olmuyor. Bir çok örnek verdiniz evet haklısınız benimde araştıklarımla suan neredeyse bir kütüphane oldu elimde daha önce hiç bir GTK uygulaması yazmadım ben o yuzden suan inanılmaz farklı geliyor. Nesneye dayalı dillerde pek bir bilgim yok malesef görülebiliyor. İş olarak elektronik ve embedded kısmında daha aktifim. GTK kısmında bu işi tek başıma yapamam asla ve cevreme linux kullancısı bile yok :) fikir alışverişi yapabilicem birisi yok o yüzden bir çok şeyi hep size sordum hocam. Cok tesekkür ederim cevapsız bırakmadınız. O zmana bundan sonra ki adımım scriptler yazarak bu işi çözmek. VLC playerden stream alarak her buton için sanal klavye scripti yazıp onları çalıştırmam gerekicek. başka çıkış yolum yok malesef. Cok kısa bir süre var elimde bu yolu tercih etmeliyim diye dusunuyorum. Bu konu ile ilgili bir kaç çalışma yaptım. her bi buton için scrrtleri yazdım fakat. scrtpleri calıstrrken sıstemde kasmalar ve yavaslamalar olusmakta bunların önune gcemedım.

System("sh pausebuton.sh");

pausebuton.sh
#!/bin/bash

i=|date +%A
echo $i

WID=`xdotool search --name "VLC ortam oynatıcısı" | head -1`
xdotool windowactivate $WID
#xdotool key ctrl+l
#xdotool type "http://whatever.com.au"
#xdotool key Return
sleep 2
xdotool key space
sleep 2

#xdotool type WeekDayIs$iWeekDayIs


keyboard ile ilgili yaptıgım bu olay mesela VLC keyboard kısayollardan alarak xdotool kullanrak bunu yaptırıyorum son çare olarak. ama dedğim gibi sistemde kasmalar neden olmakta. Stabilizasyon saglayamadım. Programalama tekniğimden kaynaklanıyor diye dusunuyorum .