iphone - مسح - مشكلة متصفح سفاري في الماك




علامة HTML5 للفيديو لا تعمل في Safari و iPhone و iPad (9)

إذا كانت مقاطع الفيديو محمية بموجب نظام تسجيل الدخول المستند إلى الجلسة ، فسيفشل Safari في تحميلها. هذا لأن Safari يقوم بتقديم طلب مبدئي للفيديو ، ثم يقوم بتسليم المهمة إلى QuickTime ، والتي تقوم بإجراء طلب آخر. نظرًا لأن Safari يحمل معلومات الجلسة ، فإنه سيمرر المصادقة ، لكن QuickTime لن يتم.

يمكنك رؤية ذلك إذا قمت بعرض سجل وصول الخادم الخاص بك ... أولاً الطلب من Safari ، ثم الطلب من QuickTime. تقدم المتصفحات الأخرى طلبًا واحدًا من المتصفح نفسه.

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

أحاول إنشاء صفحة ويب html5 فيها فيديو صغير مثل 13s ، قمت بتحويل إصدار الفلاش من هذا الفيديو إلى صيغة 3: .ogv باستخدام fireFogg و .webm باستخدام firefogg و. mp4 أيضًا باستخدام تطبيق HandBrake script html اعتدت في صفحتي:

<video  width="800" height="640" loop preload="false" autoplay  controls tabindex="0">
  <source src="xmasvideo/video.mp4" type="video/mp4" />
  <source src="xmasvideo/M&P-Xmas 2.ogv" type="video/ogv" />
  <source type="video/webm" src="xmasvideo/M&P-Xmas.webm" />
</video>

يعمل الفيديو بشكل جيد في Chrome و FireFox ولكن لا يعمل على الإطلاق في Safari على سطح المكتب أو على iPhone أو iPad ، فإن الناتج هو ببساطة صفحة فارغة تعرض عناصر التحكم في علامة الفيديو ولكن لا يتم تحميل أي شيء

لاحظ أن إصدار Safari الذي أؤيده فيديو HTML5


اعتبارًا من iOS 6.1 ، لم يعد ممكنًا تشغيل ملفات الفيديو تلقائيًا على جهاز iPad. وفقًا لوثائق Apple ، لا تعمل ميزة التشغيل التلقائي على Safari في جميع أجهزة ios بما في ذلك iPad:

"اتخذت شركة Apple قرارًا بتعطيل التشغيل التلقائي للفيديو على الأجهزة التي تعمل بنظام التشغيل iOS ، من خلال عمليات تنفيذ البرنامج النصي والسمة.

في Safari ، على iOS (لجميع الأجهزة ، بما في ذلك iPad) ، حيث يمكن أن يكون المستخدم على شبكة خلوية ويتم محاسبته لكل وحدة بيانات ، يتم تعطيل التحميل المسبق والتشغيل التلقائي. لا يتم تحميل أي بيانات حتى يبدأها المستخدم. "

يمكنك قراءة المزيد حول ذلك في وثائق Apple هذه


حل آخر ممكن بالنسبة لك الباحثين في المستقبل: (إذا كانت مشكلتك ليست مشكلة في mimetype).

لسبب ما لن يتم تشغيل مقاطع الفيديو على iPad إلا إذا قمت بتعيين علامة عناصر التحكم = "true".

مثال: نجح هذا الإجراء على أجهزة iPhone وليس على iPad.

<video loop autoplay width='100%' height='100%' src='//some_video.mp4' type='video/mp4'></video>

ويعمل هذا الآن على كل من iPad و iPhone:

<video loop autoplay controls="true" width='100%' height='100%' src='//some_video.mp4' type='video/mp4'></video>

قد لا يدعم خادم الويب الخاص بك طلبات نطاق بايت HTTP. هذا هو الحال مع خادم الويب الذي أستخدمه ، والنتيجة هي أن أداة الفيديو يتم تحميلها ويظهر زر التشغيل ، ولكن النقر على الزر ليس له أي تأثير. - يعمل الفيديو في FF و Chrome ، ولكن ليس على iPhone أو iPad.

اقرأ المزيد هنا على mobiforge.com عن طلبات النطاق البايت ، في الملحق أ: البث من أجل Apple iPhone :

أولاً ، يطلب متصفح الويب Safari المحتوى ، وإذا كان ملف صوت أو فيديو يفتحه مشغل الوسائط. ثم يطلب مشغل الوسائط أول 2 بايت من المحتوى ، لضمان أن يدعم خادم الويب طلبات نطاق البايت. ثم ، إذا كان يدعمها ، فإن مشغل وسائط iPhone يطلب بقية المحتوى عن طريق النطاقات البايتة ويقوم بتشغيلها.

قد ترغب في البحث في الويب عن "iphone mp4 byte-range".


كل ما عليك هو إضافة سمة muted وسيعمل كل شيء بشكل جيد.

مصدر هذه الإجابة هنا: https://webkit.org/blog/6784/new-video-policies-for-ios/

بشكل افتراضي ، سيتضمن WebKit السياسات التالية:

ستحترم عناصر <video autoplay> الآن سمة autoplay ، للعناصر التي تستوفي الشروط التالية:

  • سيتم السماح للعناصر <video> بالتشغيل التلقائي بدون إيماءة مستخدم إذا لم تحتوي وسائط المصدر الخاصة بها على مسارات صوتية.
  • سيُسمح أيضًا للعناصر <video muted> بالتشغيل التلقائي بدون إيماءة مستخدم.
  • إذا اكتسب عنصر <video> مسارًا صوتيًا أو أصبح غير محمي بدون إيماءة مستخدم ، فسيتم إيقاف التشغيل مؤقتًا.
  • لن يبدأ تشغيل عناصر <video autoplay> إلا عند ظهورها على الشاشة مثل عندما يتم تمريرها في منفذ العرض ، وتكون مرئية من خلال CSS ، ويتم إدراجها في DOM.
  • <video autoplay> عناصر <video autoplay> مؤقتًا إذا أصبحت غير مرئية ، مثل التمرير خارج إطار العرض.

ستقوم عناصر <video> الآن بتكريم طريقة التشغيل () ، للعناصر التي تستوفي الشروط التالية:

  • سيتم السماح للعناصر <video> باللعب () بدون إيماءة مستخدم إذا لم تحتوي وسائط المصدر الخاصة بها على مسارات صوتية ، أو إذا تم تعيين الخاصية التي تم تجاهلها على true.
  • إذا اكتسب عنصر <video> مسارًا صوتيًا أو أصبح غير محمي بدون إيماءة مستخدم ، فسيتم إيقاف التشغيل مؤقتًا.
  • سيتم السماح للعناصر <video> باللعب () عندما لا تكون مرئية على الشاشة أو عند الخروج من إطار العرض.
  • سيعيد video.play () الوعد ، الذي سيتم رفضه في حالة عدم استيفاء أي من هذه الشروط.

على iPhone ، سيتم السماح الآن لعناصر <video playsinline> باللعب في الوضع المضمن ، ولن يتم إدخال وضع ملء الشاشة تلقائيًا عند بدء التشغيل. ستستمر عناصر <video> بدون سمات playstline في طلب وضع ملء الشاشة للتشغيل على iPhone. عند الخروج من وضع ملء الشاشة باستخدام إيماءة قرصة ، ستستمر عناصر <video> بدون playsline في تشغيل الخط المباشر.


ل. mp4 هذه الأعمال (سفاري المحمول وسطح المكتب):

<video height="250" width="250" controls>
    <source src="video.mp4" type="video/mp4" />
    Your browser does not support the video tag.
</video>

إن controls=”true” المذكورة في منشور أعلاه لا تجعلني أعلم عني كما تقول Apple فقط استخدم عناصر التحكم من تلقاء نفسها.

المرجع: "لاستخدام صوت أو فيديو HTML5 ، ابدأ بإنشاء عنصر أو عنصر ، مع تحديد عنوان URL المصدر للوسائط ، بما في ذلك سمة عناصر التحكم. <video src="http://example.com/path/mymovie.mp4" controls></video> "

المصدر: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Introduction/Introduction.html

في معاملاتي (استرجاع بسيط) : لقد وجدت أن تحميل الفيديو من iPhone يرسله إلى الخادم مثل .quicktime. ومن المفارقات ، هذه هي المشكلة عند محاولة تشغيل الفيديو من الخادم في رحلات السفاري. (المحمول وسطح المكتب).

لذا إذا كنت (مثلي) تواجه مشكلة .Qicktime (أو أي شيء آخر غير. mp4) في رحلات السفاري ، هنا هو عمل حول المقدمة المقدمة من التفاح. لاحظ أني لم أختبرها بنفسي ، وأنا لست سعيدًا بها ، بل مجرد تقديم المزيد من المعلومات.

مرجع: "الرجوع إلى QuickTime Plug-in هناك طريقة بسيطة للتراجع إلى QuickTime plug-in تعمل مع جميع المتصفحات تقريبًا — قم بتنزيل ملف JavaScript الذي تم إنشاؤه مسبقًا والذي توفره Apple ، ac_quicktime.js ، من HTML Video Example و تضمينه في صفحة الويب الخاصة بك عن طريق إدخال سطر التعليمة البرمجية التالي في رأس HTML: <script src="ac_quicktime.js" type="text/javascript"></script> "

المصدر: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/AudioandVideoTagBasics/AudioandVideoTagBasics.html#//apple_ref/doc/uid/TP40009523-CH2-SW6

تحديث: لإعادة تسمية .quicktime إلى. .mov التحميل المسبق إلى الخادم (في base64 filetype "data: video / mov؛") ، تخطي ac_quicktime.js. . . سيعمل بعد ذلك في علامة فيديو html؛ هاكردي هاك.


لقد واجهت نفس المشكلة. لأن حجم إطار الفيديو الخاص بي كان كبيرًا جدًا. ie.2248 px apple support H.264 Baseline Profile Level 3.0 video، to to 640 x 480 at 30 fps. لاحظ أن الأرتال B غير مدعومة في ملف تعريف Baseline. تحقق هذا لمزيد من المعلومات


لقد وجدت أنه على الرغم من أن Safari يدعم HTML5 Video ، يجب تثبيت Quicktime Player لكي يعمل هذا. في موقع قمت بإنشائه يستخدم فيديو HTML5 ، يتم تنبيه المستخدم عند استخدام Safari ، وإخباره بأنه يجب أن يكون Quicktime مثبتًا ، وإلا فسيتمكن فقط من مشاهدة ملفات الفيديو. أتمنى أن يساعدك هذا.


واجهت نفس المشكلة مع أجهزة Apple مثل iPhone و iPad ، وقمت بإيقاف تشغيل وضع الطاقة المنخفضة وعملت ، ويجب أيضًا تضمين سمة playinline في علامة الفيديو مثل هذه

<video class="video-background" autoplay loop muted playsinline>




mobile-safari