اذهب إلى المحتوى

لوحة المتصدرين

  1. Mohamed Atia4

    Mohamed Atia4

    الأعضاء


    • نقاط

      3

    • المساهمات

      9


  2. Najah Alsaker

    Najah Alsaker

    الأعضاء


    • نقاط

      2

    • المساهمات

      543


  3. عمر قره محمد

    عمر قره محمد

    الأعضاء


    • نقاط

      1

    • المساهمات

      4096


  4. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      1

    • المساهمات

      2934


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 04/10/24 في كل الموقع

  1. ازاي اشغل فيديو عشوائي من مكتبة فيديوهات كل ما اضغط علي زرار معين؟
    1 نقطة
  2. 1 نقطة
  3. لا بأس يمكننا عمل ذلك عبر اضافة بعض الشروط والحلقات للكود ليصبح كالتالي var videos = [ "video1.mp4", "video2.mp4", "video3.mp4" ]; var playedVideos = []; var currentVideoIndex = -1; function playRandomVideo() { var randomIndex; do { randomIndex = Math.floor(Math.random() * videos.length); } while (playedVideos.includes(randomIndex)); playedVideos.push(randomIndex); var videoUrl = videos[randomIndex]; var videoPlayer = document.getElementById("videoPlayer"); videoPlayer.src = videoUrl; videoPlayer.play(); if (playedVideos.length === videos.length) { document.querySelector("button").disabled = true; } } وهذا شرح بسيط عن التعديلات التي قمت باجرائها اضفت مصفوفة playedVideos لتخزين الفيديوهات التي تم تشغيلها بها كيف نضمن ان لا يتم تكرارها استخدمت الحلقة do while للتحقق من عدم تكرار نفس الفيديو عن طريق اعطاء كل فيديو رقم خاص به من 0 وحتى عدد اخر فيديو بعد تشغيل الفيديو يتم اضافته الى playedVideos للتأكد من عدم تشغيله مرة اخرى وبعد تشغيل جميع الفيديوهات بنجاح يتم ايقاف زر تشغيل الفيديوهات لعدم تكرارها وبالتوفيق لك ..
    1 نقطة
  4. الحمد لله اشتغل بعد ما جربات طرق كتير معلش بس تعديل صغير عشان لسه مبدأتش جافا ممكن تزود انه لو شغل فيديو ميكرروش تاني الا لو المكتبة خلصت وبرضه بعد ما يشغل عدد فيديوهات معين يثبت علي فيديو واحد بس ميشغلش غيره
    1 نقطة
  5. يمكنك عمل ذلك بدون اي مكتبات خارجية ويمكنك عمله بإستخدام مكتبة jquery ساعطيك الطريقتان وستختار ما يتناسب مع احتياجات مشروعك بدون مكتبات : ننشئ عنصر فيديو في ملف ال html لنعرض الفيديوهات به واعطيناه id مميز لاستخدامه لاحقا , كما انني اعطيته حدث عن الضغط على الزر واسندت اليه اسم الدالة التي سنعمل عليها في كود الجافا سكريبت <video controls id="videoPlayer"></video> <button onclick="playRandomVideo()">تشغيل فيديو عشوائي</button> انشأت في البداية مصفوفة تحتوي على عنوانين الفيديوهات (ستقوم باستبدالها بالمسار الاساسي للفيديوهات الخاصة بك او بعنوان url ) واستخدمت الدالة Math.random() لاختيار فيديو عشوائي var videos = [ "video1.mp4", "video2.mp4", "video3.mp4" ]; function playRandomVideo() { var randomIndex = Math.floor(Math.random() * videos.length); var videoUrl = videos[randomIndex]; var videoPlayer = document.getElementById("videoPlayer"); videoPlayer.src = videoUrl; videoPlayer.play(); } باستخدام مكتبة jQuery : اول خطوة هي تضمين المكتبة لدينا <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> ثم كما عملنا سابقا نضع وسم الفيديو وزر التشغيل في ملف ال html <video controls id="videoPlayer"></video> <button id="playRandomButton">تشغيل فيديو عشوائي</button> وفي ملف الجافا سكريبت ستضع الكود التالي : $(document).ready(function() { var videos = [ "video1.mp4", "video2.mp4", "video3.mp4" ]; $("#playRandomButton").click(function() { var randomIndex = Math.floor(Math.random() * videos.length); var videoUrl = videos[randomIndex]; $("#videoPlayer").attr("src", videoUrl); $("#videoPlayer")[0].play(); }); }); الطريقة ذاتها ولكن ما يختلف هو طريقة الكتابة التي تستخدمها مكتبة jQuery وبالتوفيق لك ..
    1 نقطة
  6. Buffer هو مخزن مؤقت للبيانات التي في طريقها للعرض او للتخزين والتي يمكن تعديلها بشكل غير متسلسل قبل ان تقرأ بشكل متسلسل. يمكن عمل Buffer بالشكل التالي : char* buffer = new char[length]; ويمكنك حذفه بالشكل التالي : delete[ ] buffer; بينما الفرق بين الـ الفرق بين n\ و endl فهو ان الاولى (n\) تقوم بتخزين البيانات بشكل Buffer حتى الانتهاء منها ثم تقوم بعرضها (اي عمل الـ flushing وهي المسؤولة عن ظهور البيانات على الشاشة او حفظها بالملف) بينما الثانية (endl) تقوم بعمل flushing لكل عنصر على حدى وهذا يجعل من الاولى (n\) افضل من الثانية (endl) ولذلك ينصح دائماً باستخدامها. اقرا ايضا :
    1 نقطة
  7. عندما تحاول أن تقوم بطباعة أكثر من نص، لإغنه يتم تخزين هذه النصوص في ما يسمى بـ Buffer وبعد ذلك يتم عرض كل النصوص مرة واحدة على الشاشة (أو كتابتها في ملف) وتسمى هذه العملية بالصرف flushing، فعلى سبيل المثال: #include <iostream> int main() { for (char i='A'; i <= 'Z'; i++) { std::cout << i << endl; } return 0; } الكود السابق يقوم بطباعة الحروف من A إلى Z وفي كل دورة يتم عمل صرف Flushing للنص وإظهاره على الشاشة. بينما في الكود التالي: #include <iostream> int main() { for (char i='A'; i <= 'Z'; i++) { std::cout << i << "\n"; } return 0; } فإنه يتم تخزين كل الحروف الـ Buffer وبعد ذلك يتم عرض كل الحروف مرة واحدة. بالتأكيد فإن الكود الثاني أفضل من ناحية الأداء لأن الكود يقوم بعرض الحروف مرة واحدة على الشاشة، بينما الكود الأول يقوم بعمل Flushing لكل حرف في كل دورة. لذلك يفضل دائمًا أن تستعمل الرمز n\ قدر الإمكان بدلًا من إستخدام std::endl ملاحظة أخرى وهي أنه يمكن إستخدام الرمز n\ في نهاية النص كالتالي: std::cout << "Hello\n"; std::cout << "Hello" << std::endl; لاحظ أن السطر الأول يقوم بإستخدام المعامل >> مرة واحدة بينما السطر الثاني فإن يقوم بإستدعاء المعامل >> مرتين، وهذا الأمر قد يؤثر على أداء البرامج التي تعتمد على الخيوط threads بشكل أساسي. بالتوفيق، تحياتي.
    1 نقطة
×
×
  • أضف...