הפעלה אוטומטית מושתקת בנייד – נגמרו הימים של פריצות קנבס וקובצי GIF מונפשים.

החל מגרסה 53, דפדפן Chrome ל-Android תומך בהפעלה אוטומטית של סרטונים ללא קול. ההפעלה של רכיב סרטון תתחיל אוטומטית כשהוא יוצג אם גם autoplay וגם muted מוגדרים, ואפשר להתחיל הפעלה של סרטונים מושתקים באופן פרוגרמטי באמצעות play(). בעבר, הפעלת הסרטון בנייד הייתה צריכה להתבצע על ידי תנועת משתמש, ללא קשר למצב ההשתקה.

<video playsinline autoplay muted>
    <source src="video.webm" type="video/webm" />
    <source src="video.mp4" type="video/mp4" />
</video>

כדי לראות את זה בפעולה, אפשר לעבור אל הדוגמה הזו. ההפעלה של סרטון muted מתחילה באופן אוטומטי ב-Chrome 53 ואילך.

צילום מסך של נגן וידאו.

בנוסף, עכשיו אפשר להפעיל השמעה מושתקת באמצעות השיטה play(). בעבר, play() היה מפעיל את ההפעלה רק אם היא הגיעה ממחווה של משתמש, כמו לחיצה על לחצן. כדאי להשוות בין שתי ההדגמות הבאות ב-Android – נסו אותן ב-Chrome 53, ואז בגרסה ישנה יותר:

מומלץ להשתמש במאפיין autoplay בכל הזדמנות, ובשיטה play() רק אם יש צורך.

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

השינוי ב-muted autoplay יאפשר גם להשתמש ב-play() עם רכיב video שלא נוצר ב-DOM, למשל כדי להפעיל הפעלה של WebGL.

השיטה play() גם מחזירה הבטחה, שאפשר להשתמש בה כדי לבדוק אם הפעלת סרטונים בתוכנה בהשמעה מושתקת מופעלת. דוגמה לכך אפשר לראות בכתובת simpl.info/video/scripted.

מה הסיבה לשינוי?

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

ההשבתה של ההפעלה האוטומטית הובילה את המפתחים לפתרונות חלופיים כמו קובצי GIF עם אנימציה, וגם לשיטות פריצה <canvas> ו-<img>. השיטות האלה גרועות בהרבה מאופטימיזציה של סרטונים מבחינת צריכת חשמל, ביצועים, דרישות רוחב פס, עלות נתונים ושימוש בזיכרון. סרטונים יכולים לספק איכות גבוהה יותר מאשר קובצי GIF מונפשים, עם דחיסה טובה בהרבה: בערך פי 10 בממוצע, ועד פי 100 במקרה הטוב. אפשר לבצע פענוח של סרטונים ב-JavaScript, אבל זה גורם לניצול משמעותי של הסוללה.

הנה השוואה בין שני קבצים – הראשון הוא סרטון והשני הוא GIF מונפש:

הסרטון עם הקליפ פועל.

הם נראים די דומים, אבל גודל הסרטון הוא פחות מ-200KB וגודל ה-GIF המונפש הוא יותר מ-900KB.

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

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

הפרטים הקטנים

  • מבחינת נגישות, הפעלה אוטומטית יכולה להיות בעייתית במיוחד. ב-Chrome מגרסה 53 ואילך ב-Android יש הגדרה להשבתה מלאה של ההפעלה האוטומטית: בהגדרות המדיה, בוחרים באפשרות 'הפעלה אוטומטית'.
  • השינוי הזה לא משפיע על הרכיב audio: ההפעלה האוטומטית עדיין מושבתת ב-Chrome ב-Android, כי הפעלה אוטומטית בהשתקה לא הגיונית במקרה של אודיו.
  • אם מצב חיסכון בחבילת הגלישה מופעל, לא תהיה הפעלה אוטומטית. אם מצב חיסכון בחבילת הגלישה מופעל, ההפעלה האוטומטית מושבתת בהגדרות המדיה.
  • ההפעלה האוטומטית עם השתקת הקול תפעל לכל רכיב סרטון גלוי בכל מסמך גלוי, iframe או אחר.
  • כדי ליהנות מההתנהגות החדשה, צריך להוסיף את muted וגם את autoplay. אפשר להשוות בין simpl.info/video לבין simpl.info/video/muted.

תמיכה

  • הפעלה אוטומטית בהשתקה נתמכת ב-Safari ב-iOS 10 ואילך.
  • הפעלה אוטומטית, עם או בלי השתקה, כבר נתמכת ב-Android על ידי Firefox ו-UC Browser: הדפדפנים האלה לא חוסמים הפעלה אוטומטית מכל סוג.

למידע נוסף