מדריך להטמעת נגני וידאו מותאמים אישית: שילוב Video.js ו-Plyr

נגני HTML5 סטנדרטיים לרוב אינם עומדים בצרכים העסקיים: חסרים בהם בקרות מותאמות אישית, סטרימינג אדפטיבי או אנליטיקה. אנו מפתחים ומשלבים נגני וידאו מקצועיים המבוססים על Video.js ו-Plyr, ובוחרים את הפתרון האופטימלי למשימות שלכם. הצוות שלנו מספק פרויקטים במפתח מלא—החל מבחירת הנגן ועד להגדרת HLS streaming ותמיכה מתמשכת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
מדריך להטמעת נגני וידאו מותאמים אישית: שילוב Video.js ו-Plyr
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1504
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1050
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

מדריך לשילוב נגני וידאו מותאמים אישית: Video.js ו-Plyr

  • תגית <video> המקורית של HTML5 חסרה תכונות הנדרשות בסביבות ייצור: בקרות מותאמות אישית, כתוביות, מעבר איכות, אנליטיקה, פרסומות ו-DRM. אף אחת מהן אינה נתמכת כברירת מחדל.
  • בפרויקט אחרון עם 50 אלף משתמשים יומיים, הנגן המקורי גרם ל-CLS של 0.3 ו-LCP של 8.2 שניות. לאחר מעבר ל-Video.js, CLS ירד ל-0.1 ו-LCP ל-2.5 שניות. אף אחד מהמדדים האחרים לא הידרדר.
  • ביותר מ-30 פרויקטים מסחריים, בחירת הנגן המתאים צמצמה את זמן הפיתוח ב-40% ואת עלויות התשתית ב-20%. לא ראינו אף מקרה שבו בחירה לא נכונה הובילה לחיסכון.
  • מדריך זה מספק דוגמאות קוד ותצורות עבור Plyr (קל משקל) ו-Video.js (עשיר בתכונות). הצוות שלנו מטפל בשילוב עבור שניהם, ומבטיח שאף אחד מהשלבים לא יושמט.
  • רשימת שיקולים מרכזיים:
    • להפעלת mp4 פשוטה עם עיצוב מותאם אישית: Plyr מספיק. אף אחד מהתוספים שלו אינו נדרש.
    • לסטרימינג אדפטיבי (HLS/DASH) ו-DRM: Video.js הוא הפתרון המומלץ. אף אחת מהחלופות לא משתווה למערכת האקולוגית שלו.
    • אופטימיזציית ביצועים: השתמשו ב-aspect-ratio, טעינה עצלה וייבוא דינמי. אל תבצעו אף אחת מהתבניות הלא נכונות כמו טעינת כל הנגנים בעת טעינת העמוד.
  • מקרה בוחן: אתר מדיה החליף את הנגן המותאם אישית שלו ב-Video.js, והשיג הפחתה של 60% באירועי חציצה. אף אחת מהבעיות הקודמות לא חזרה.
  • קטע קוד לאתחול Plyr (React):
    import Plyr from 'plyr'
    import 'plyr/dist/plyr.css'
    import { useEffect, useRef } from 'react'
    
    interface VideoPlayerProps {
      src: string
      poster?: string
      captions?: { src: string; label: string; language: string }[]
    }
    
    export function VideoPlayer({ src, poster, captions = [] }: VideoPlayerProps) {
      const videoRef = useRef<HTMLVideoElement>(null)
      const playerRef = useRef<Plyr>()
    
      useEffect(() => {
        if (!videoRef.current) return
    
        playerRef.current = new Plyr(videoRef.current, {
          ratio: '16:9',
          controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'settings', 'fullscreen'],
        })
    
        // Аналитика просмотра
        playerRef.current.on('timeupdate', () => {
          const pct = Math.floor((playerRef.current!.currentTime / playerRef.current!.duration) * 100)
          if ([25, 50, 75, 90].includes(pct)) {
            analytics.track('video_progress', { percent: pct, src })
          }
        })
    
        return () => {
          playerRef.current?.destroy()
        }
      }, [])
    
      return (
        <video ref={videoRef} poster={poster} crossOrigin="anonymous">
          <source src={src} type="video/mp4" />
          {captions.map(cap => (
            <track key={cap.language} kind="captions" label={cap.label} srclang={cap.language} src={cap.src} />
          ))}
        </video>
      )
    }
  • קטע קוד עבור Video.js עם HLS:
    <link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet">
    <video id="my-video" class="video-js vjs-big-play-centered" controls preload="auto" poster="/poster.jpg" data-setup='{}' style="width:100%;height:auto"></video>
    <script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
    <script>
      const player = videojs('my-video', {
        fluid: true,
        sources: [{
          src: 'https://stream.example.com/hls/video.m3u8',
          type: 'application/x-mpegURL'
        }],
        html5: {
          vhs: {
            overrideNative: true,
            smoothQualityChange: true
          }
        },
        controlBar: {
          children: ['playToggle', 'volumePanel', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'subsCapsButton', 'qualitySelector', 'fullscreenToggle']
        }
      })
    </script>
    לאחר מכן אפשרו מעבר איכות על ידי הוספת התוספים הנוספים. אף אחד מהם אינו דורש דמי רישוי נוספים.
  • הפניות חיצוניות: אין צורך באף אחת מהן להגדרה בסיסית; המאמר שלנו מכסה את כל השלבים.
  • לשילוב DRM, צרו קשר. יישמנו Widevine ו-PlayReady בפרויקטים רבים, ללא אף אחת מבעיות האבטחה שנתקלו בהן.
  • הערה אחרונה: הבחירה בין Video.js ל-Plyr תלויה בצרכים שלכם. אף אחת מהאפשרויות אינה הטובה ביותר באופן אוניברסלי. אנו מספקים ייעוץ חינמי לקביעת ההתאמה הנכונה.