C# kodda bildirim sesi çalınamadı hatası

EnesBeyy

Hectopat
Katılım
8 Şubat 2019
Mesajlar
195
Makaleler
1
Çözümler
1
Kod:
using System;
using System.Net;
using System.IO;
using System.Threading;

namespace SiparisKontrolUygulamasi
{
    class Program
    {
        static Timer timer;
        static bool isOrderNotificationPlaying = false;

        static void Main(string[] args)
        {
            // Konsol penceresinin arka plan rengini siyah yap
            Console.BackgroundColor = ConsoleColor.Black;
            Console.Clear();

            // Zamanlayıcı oluştur
            timer = new Timer(CheckForNewOrder, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));

            Console.WriteLine("Sipariş kontrol uygulaması başlatıldı. Her dakika bir sipariş kontrol edilecek...");
            Console.WriteLine("Uygulamayı sonlandırmak için 'q' tuşuna basın.");

            // Sonsuz döngü
            while (true)
            {
                var key = Console.ReadKey(intercept: true);
                if (key.Key == ConsoleKey.Q)
                    break; // 'q' tuşuna basıldığında döngüyü kır ve programı sonlandır
            }

            // Zamanlayıcıyı temizle
            timer.Dispose();
        }

        static void CheckForNewOrder(object state)
        {
            try
            {
                // JSON yanıtını simüle et
                string responseFromServer = "{\"siparis\":1}";

                // JSON yanıtını analiz etme
                if (responseFromServer.Contains("\"siparis\":1"))
                {
                    Console.WriteLine("Yeni bir sipariş var!");

                    // Arka plan rengini kırmızı yap
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.Clear();

                    if (!isOrderNotificationPlaying)
                    {
                        isOrderNotificationPlaying = true;
                        PlayNotificationSound();
                    }

                    // Kullanıcı ENTER tuşuna basana kadar bekle
                    while (!Console.KeyAvailable || Console.ReadKey(true).Key != ConsoleKey.Enter) { }

                    // Bildirim sesini durdur
                    isOrderNotificationPlaying = false;

                    // Arka plan rengini siyah yap
                    Console.ResetColor();
                    Console.Clear();
                }
                else
                {
                    Console.WriteLine("Yeni sipariş yok.");
                    isOrderNotificationPlaying = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Hata oluştu: " + ex.Message);
            }
        }

        static void PlayNotificationSound()
        {
            try
            {
                // Bildirim sesi çalma
                using (var player = new System.Media.SoundPlayer(@"Properties/bildirimsesi.mp3"))
                {
                    player.Play();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Bildirim sesi çalınırken bir hata oluştu: " + ex.Message);
            }
        }
    }
}


Kodun işi şu C# ile bir masaüstü uygulaması yapmam istendi ama ben pek bilmiyorum. Konsolda bu kadar ilerleyebildim. Attığımız linkten JSON yanıtı alacak ve yanıt 1 ise ekrana yeni sipariş var yazacak, bildirim sesi çalacak ve arka plan rengi siyahtan kırmızıya dönecek. Kişi entera basana kadar arka plan kırmızı kalmaya ve bildirim sesi çalmaya devam edecek. Kişi Q'ya basınca da uygulama kapanacak. Console değil de forms olarak istediler ama maalesef onu kullanmayı bilmiyorum. Yardımcı olabilecekler var mı? Forms olursa da enter yerine sayfadaki butona basarak durduracak. Şu an çalıştırdığımda bildirim sesi çalınamadı hatası alıyorum. Bildirim sesini nasıl ekleyeceğimi bulamadım.
 
Son düzenleyen: Moderatör:
ChatGPT ile mi yazdın bu kodu ?
 
Aldığınız hatayı göstermemişsiniz. Ayrıca sunucudan veri de çekmiyorsunuz. Sadece simüle ediyorsunuz.
 
Aldığınız hatayı göstermemişsiniz. Ayrıca sunucudan veri de çekmiyorsunuz. Sadece simüle ediyorsunuz.
JSON dosyası hazır olmadığı için direkt 1 döndürüyorum şuan kodda test etmek için. Aldığım hatada şu:
normalde ekran sadece sipariş görünce kırmızı olmalı ve ben entera basana kadar bildirim sesi çalmalı ama ses dosyasını yükleyemediğimden dolayı bu ekran geliyor direkt
 
Tamam, ses dosyasını yüklemediğiniz için sesi çalmıyor. Ses dosyasını yüklerseniz problem kalmayacaktır.
 
Tamam, ses dosyasını yüklemediğiniz için sesi çalmıyor. Ses dosyasını yüklerseniz problem kalmayacaktır.
dosyanın içine nasıl atıp nasıl çalıştıracağım onu çözemedim işte. Ben attım ama properties dosyası içinden de çektim ama görmüyor dosyayı
 
Project > About > Resources kısmından ekleyebilmeniz lazım. Ya da ses dosyasını uygulama ile aynı dizine koyun. "./dosya.ext" ile erişin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…