Makale Özeti

Bir süre önce aklıma gelen bir fikir sonucunda yazdığım basit bir uygulamayı paylaşmak istedim. Yapacağımız şey cep telefonumuz ile bilgisayarımıza uzaktan komut vererek müzik çalmasını sağlamak.

Makale

Merhaba;

Bir süre önce aklıma gelen bir fikir sonucunda yazdığım basit bir uygulamayı paylaşmak istedim.

Yapacağımız şey, cep telefonumuzdan WAP'a girip, oluşturduğumuz bir WAP sayfasında yazdığımız şarkı isimlerinden birini seçmek. Seçtikten sonra bilgisayarımızda seçtiğimiz müzik çalmaya başlayacak. Mesela iş yerinden eve geliyorsunuz, yoldayken cep telefonunuzdan seçiyorsunuz, eve geldiğinizde müzik başlamış oluyor, tabiki biraz gereksiz birşey bu, daha işe yarar şeyler de yapılabilir.
Mesela bir ara Turkcell ve Siemens böyle bir çalışma yapıyordu, eve gelmeden önce fırınınız tavuğu kızartmaya başlıyordu (sanırım tavuğun bütün gün fırının içinde beklemesi gerekiyor, bozulurmu acaba bilmiyorum, mutlaka bir çözüm bulmuşlardır) , aynı şekilde adını hatırlayamadığım bir firmanın bir ürünü de kış aylarında eve gelmeden telefonunuzdan verdiğiniz komutla evinizi ısıtmaya başlıyordu.

Çok heyecanlandığınızdan eminim, aslında çok basit bir mantık, benzer sistemlerin nasıl geliştirildiği konusunda fazla araştırma yapamadım, bizim yöntemimiz biraz daha bireysel, küçük çapta;
ASP.NET ile basit bir WAP sayfası yapacağız, bir XML dosyasına yazdığımız şarkı isimleri bu wap sayfamızda 'bağlantı' olarak yazılacak, telefonumuzdan bir şarkıyı seçtiğimizde ,bir dosyaya hangi şarkıyı seçtiğimizi yazacak. Daha sonra Visual C# ile yazdığımız çok çok basit bir program, sık sık bu dosyayı okuyacak, dosya da bir değişiklik fark ettiği zaman, dosyada belirtilen şarkının numarasını alacak ve XML dosyasından seçilen şarkının ses dosyasının adresini alacak ve ActiveX Windows Media Player şarkıyı çalmaya başlayacak. Beklediğiniz kadar karmaşık olmadı sanırım. :) Zaten her zaman amaç, en az zahmetle, en pratik yoldan, en istikrarlı şekilde, yapılması gereken işi yaptırmak.

Artık uygulamaya geçelim;

İlk önce küçük Wap sayfamızı yazalım;

Default.aspx ;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
<card title="Muzik Degistir">
<asp:Literal runat="server" ID="muzikler"></asp:Literal>
</card>
</wml>


Default.aspx.cs ;

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["muzik"] != null)
{
StreamWriter yaz = null;
try
{
yaz = new StreamWriter(Server.MapPath("App_Data/secilenmuzik.txt"));
yaz.Write(Request.QueryString["muzik"]);

}
catch
{
// Hata olabilir
}
yaz.Close();
}

XmlDocument xd = new XmlDocument();
StreamReader xmloku = new StreamReader(Server.MapPath("App_Data/muzikler.xml"));
xd.LoadXml(xmloku.ReadToEnd());
xmloku.Close();

muzikler.Text = "";
for (int i = 0; i < xd.ChildNodes[1].ChildNodes.Count; i++)
{
muzikler.Text += "<p><anchor>" + xd.ChildNodes[1].ChildNodes[i].Attributes["isim"].Value + "<go href=\"?muzik=" + i + "\"/></anchor></p>";
}


}
}



XML dosyası, muzikler.xml ;

<?xml version="1.0" encoding="utf-8" ?>

<muzikler>

<muzik isim="Michael Lington - Call Me Late Tonight" adres="D:\Müzik\Michael Lington\Stay With Me\07 Call Me Late Tonight.mp3" />

<muzik isim="Brian Culbertson - Dreaming of You" adres="D:\Müzik\Brian Culbertson\It's On Tonight\07 Dreaming of You.mp3" />

<muzik isim="Eric Clapton - Reptile" adres="D:\Müzik\Eric Clapton\2001 - Eric Clapton - Reptile\01 Eric Clapton - Reptile.mp3" />

<muzik isim="Ilhan Ersahin - Ask" adres="D:\Müzik\Ilhan Ersahin\Wonderland\Ask.mp3" />

<muzik isim="Boney James - Pure" adres="D:\Müzik\Boney James\Pure\01 Pure.mp3" />

<muzik isim="Chris Botti - La Belle Dame Sans Regrets" adres="D:\Müzik\Chris Botti\When I Fall in Love\08 La Belle Dame Sans Regrets.mp3" />

<muzik isim="Jazzmasters - Puerto Banus" adres="D:\Müzik\Jazzmasters\Jazzmasters 4\Puerto Banus.mp3" />

</muzikler>



Sıra C# ile geliştireceğimiz diğer yazılımda ;



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.IO;

namespace wapmuzikcal
{
public partial class wapmuzik : Form
{
public wapmuzik()
{
InitializeComponent();
}

string muzikno = "";

private void wapmuzik_Load(object sender, EventArgs e)
{
if (File.Exists(@"C:\inetpub\wwwroot\wapmuzik\App_Data\secilenmuzik.txt"))
{
StreamReader oku = new StreamReader(@"C:\inetpub\wwwroot\wapmuzik\App_Data\secilenmuzik.txt");
muzikno = oku.ReadToEnd();
oku.Close();
}

zamanlayici.Start();
}

private void zamanlayici_Tick(object sender, EventArgs e)
{
if (File.Exists(@"C:\inetpub\wwwroot\wapmuzik\App_Data\secilenmuzik.txt"))
{
StreamReader oku = new StreamReader(@"C:\inetpub\wwwroot\wapmuzik\App_Data\secilenmuzik.txt");
string m = oku.ReadToEnd();
oku.Close();

if (muzikno != m)
{
muzikno = m;
oku = new StreamReader(@"C:\inetpub\wwwroot\wapmuzik\App_Data\muzikler.xml");
XmlDocument xd = new XmlDocument();
xd.LoadXml(oku.ReadToEnd());
oku.Close();
muzik_isim_label.Text = xd.ChildNodes[1].ChildNodes[Convert.ToInt16(muzikno)].Attributes["isim"].Value;
axWindowsMediaPlayer1.URL = xd.ChildNodes[1].ChildNodes[Convert.ToInt16(muzikno)].Attributes["adres"].Value;
}
}
}

}
}



Geliştirme aşamasını tamamladık, kaynak kodları indirip daha detaylı inceleyebilirsiniz.

Şimdi oluşturduğumuz WAP sayfasını bilgisayarımız ile yayınlamamız gerekiyor; ben ADSL kullanıyorum, bilgisayarımda yüklü olan IIS ile WAP sayfamızı yayınlamak için 80:80 bağlantı noktasını açmamız gerek, kendi ASUS ADSL modemimden örnek vereceğim.



Ve güvenlik duvarı ayarları;

Farklı bir güvenlik duvarı kullanıyorsanız, yine 80:80 bağlantı noktasına izin vermeniz gerekir.



Artık herşey tamamlandı.
Tüm ayarları yapıp, Visual C# ile yazdığımız Windows Media Player ile müzik çalacak olan programımızı açarız.
Cep telefonumuzdan bilgisayarımızın ip numarası ile : http://xxx.xxx.xxx.xxx/wapmuzik şeklinde wap sayfamızda ulaşırız, XML dosyasında yazan şarkı isimleri karşımıza çıkar, bir tane seçtiğimizde bilgisayarımızda müzik çalmaya başlar.


Eğlenceli bir uygulama.


İlginiz için teşekkürler.




Alper Özçetin
http://www.alperozcetin.com/
alper@alperozcetin.com