التطوير علي كود برمجي

حاليا الراديو المباشر هو عبارة عن محطه اذاعية تعمل ليل نهار بدون توقف

هل من مشاركة من اصحاب الخبرة اذا اردنا محاكاة الراديو

ان يتم وضع روابط صوتيه تعمل بالتتابع وبشكل عشوائي .. ومرتبطه بالوقت .. دون توقف للابد

<div class="card" style="width: 15rem ;height: 22rem; padding:4px; float:right;margin-right: 5%;margin-top: 2%; border-radius: 3%;">
     <img src="https://cdn.dribbble.com/users/7813810/screenshots/17447329/media/7f8dbdc63a52238034412012cd59d0f3.gif" class="card-img-top" alt="..."> 
     <div class="card-body"> <h5 class="card-title">قران</h5> <p class="card-text">قران يتلي اناء الليل واطراف النهار .</p>
 
      <button onclick="playSound()">Play Sound</button>


      <audio id="sound1" src="https://ia600605.us.archive.org/19/items/NaghamaT_W_HassanaT_Mobile_Rings_ParT-1_Up-By-MusleM/R113-.mp3" autoplay></audio>
      <audio id="sound2" src="https://ia600605.us.archive.org/19/items/NaghamaT_W_HassanaT_Mobile_Rings_ParT-1_Up-By-MusleM/R68-.mp3" autoplay></audio>
      
      <script>
        var sounds = ["sound1", "sound2"];
        
        function playSound() {
          var audio = document.getElementById(sounds[Math.floor(Math.random() * sounds.length)]);
          audio.play();
          audio.addEventListener('ended', function() {
            audio = document.getElementById(sounds[Math.floor(Math.random() * sounds.length)]);
            audio.play();
          });
          audio.loop = true;
        }
      </script>

هل من كود لنفس الفكرة ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

يمكن عمل محاكاة بسيطة للعملية عن طريق بروتوكول الويب سوكيت أين تكون المركزية في الموضوع للخادم، فيتم مثلا التالي:

  1. يرسل الخادم الى العميل ملفا صوتيا فيه ساعة مثلا في الزمن ز0 مثلا.
  2. يقوم العملاء النشطون باستقبال الملف وتشغيله.
  3. يقوم الخادم بعد ساعة تماما بإرسال الملف 2 الى العملاء النشطين وهكذا.

فاللحظة التي يدخل فيها العميل الى الموقع يقوم بطلب الملف الصوتي المفعل حاليا من الخادم ليقوم الخادم بحساب المدة المستمع لها من العملاء ويرفقها مع الرد بالملف الصوتي، وهكذا. مثال:

  • دخل احمد الموقع في الساعة الـ 10 صباحا
  • يقوم الخادم بإعطاء احمد ملفا صوتيا به ساعة من الزمن مثلا
  • يدخل علي الموقع في الساعة الـ 10 والنصف صباحا
  • يقوم الخادم بإنقاص الزمن المنقضي من بداية تشغيل الملف الصوتي من زمن الملف الصوتي كاملا، فيعيد في الرد الى علي نفس الملف الصوتي بالاضافة الى الاشارة الى ابتداء الملف الصوتي من بعد 30 دقيقة

النتيجة: تجربة اشبه بمحطات الراديو.

بالطبع فإن هذا هو المنطق البسيط جدا للعملية، يمكن التوغل في الفكرة أكثر وتحسينها عن طريق استخدام المهام المجدولة Cron jobs أو غيرها .. كما يمكن توظيف مختلف ميزات بروتوكول الويب سوكيت أو الويب RTC لتوفير اتصال احسن جودة، هذا بجانب امكانية ادارة هاته الملفات الصوتية من طرف لوحة تحكم وميزات ادارة معينة.

اضافه ممتازة

Mustafa_Suleiman أضف ردا

إليك بعض الأفكار حول كيفية محاكاة الراديو:

  • إضافة المزيد من الملفات الصوتية إلى مجموعة الأصوات، وسيعطيك هذا مجموعة متنوعة من الأصوات للإختيار من بينها.
  • تستطيع استخدام مؤقت للتحكم في وقت تشغيل الملفات الصوتية، وسيسمح لك ذلك بإنشاء تجربة راديو أكثر واقعية ، مع تشغيل برامج مختلفة في أوقات مختلفة من اليوم.
  • يمكنك إضافة بعض المؤثرات الصوتية البسيطة إلى الملفات الصوتية، والذي سيضيف بعض الاهتمام الإضافي ويجعل تجربة الراديو أكثر جاذبية.
  • وبإمكانك استخدام واجهة برمجة تطبيقات الويب للحصول على الوقت الحالي، وسيسمح لك ذلك بربط الملفات الصوتية بأوقات محددة من اليوم.

مثلاً ، أن يكون لديك برنامج إخباري يتم تشغيله في الساعة 7 صباحًا، وبرنامج رياضي يتم تشغيله في الساعة 10 صباحًا، وبرنامج موسيقى يتم تشغيله في الساعة الواحدة مساءً.

فيما يلي مثال لكيفية استخدام واجهة برمجة تطبيقات الويب للحصول على الوقت الحالي:

function getCurrentTime() {
  // احصل على الوقت الحالي بالمللي ثانية
  const currentTime = new Date().getTime();

// استخدم واجهة برمجة التطبيقات للحصول على الوقت الحالي بالتوقيت العالمي المنسق  const utcTime = new Date(currentTime + TimeZoneOffset);

  // إرجاع وقت التوقيت العالمي المنسق بتنسيق يمكن قراءته
  return utcTime.toLocaleString();

بمجرد أن يتوفر لديك الوقت الحالي، تستطيع استخدامه لربط الملفات الصوتية بأوقات محددة من اليوم.

وكمثال استخدم الكود التالي لتشغيل برنامج الأخبار الساعة 7 صباحًا:

function playNews() {
  // احصل على الوقت الحالي
  const currentTime = getCurrentTime();


  // تحقق مما إذا كانت الساعة 7 صباحًا
  if (currentTime >= 7 * 60 * 60 * 1000) {
    // تشغيل برنامج الأخبار
    document.getElementById("sound1").play();
  }
}

ما شاء الله

نعم، يمكن استخدام تقنية HTML5 لتشغيل ملفات الصوت بشكل متسلسل وعشوائي. يمكن استخدام عنصر audio في HTML5 لتشغيل الملفات الصوتية، واستخدام JavaScript لإضافة روابط صوتية والتحكم في تشغيلها.

فيما يلي مثال على كيفية إضافة رابط صوتي وتشغيله باستخدام JavaScript:

HTML:

<audio id="myAudio">
 <source src="audio1.mp3" type="audio/mpeg">
</audio>
<button onclick="playAudio()">Play Audio</button>

JavaScript:

var audio = document.getElementById("myAudio");

function playAudio() {
 audio.play();
}

يمكن إضافة المزيد من الروابط الصوتية واستخدام دالة Math.random() لعرضها بشكل عشوائي. يمكن أيضًا استخدام setInterval() لجعل التشغيل مستمرًا بشكل دائم.

فيما يلي مثال آخر يظهر كيفية إضافة روابط صوتية عشوائية وجعل التشغيل مستمرًا:

HTML:

<audio id="myAudio">
 <source src="" type="audio/mpeg">
</audio>
<button onclick="playAudio()">Play Audio</button>

JavaScript:

var audio = document.getElementById("myAudio");
var audioSources = ["audio1.mp3", "audio2.mp3", "audio3.mp3"];

function playAudio() {
 var randomIndex = Math.floor(Math.random() * audioSources.length);
 audio.src = audioSources[randomIndex];
 audio.play();
}

setInterval(function() {
 playAudio();
}, 5000);

في هذا المثال، تم إنشاء مصفوفة تحتوي على روابط الصوتية، ثم استخدام دالة Math.random() لاختيار رابط صوتي عشوائي. تم أيضًا استخدام setInterval() لجعل التشغيل مستمرًا بشكل دائم كل 5 ثواني.