سلام بنده یک بازی درست کرده ام. که تایم مشخصی از بازی باید یک افکت صدایی پخش شود.
در نسخه دکستاپ مشکلی ندارد و پخش می شود. ولی در سافاری گوشی ایفونم پخش نمی شود.
به عبارتی بگم که در سافاری ایفونم فقط اون افکت هایی که با کلیک بر روی دکمه ای هستند پخش می شود.
و افکت های دیگه که دکمه ای برای فعال سازی ندارند. پخش نمیشوند.
آیاکسی میداند دلیلش چیست؟
var seke = new Audio("./seda/seke.mp3");
seke.play();
مثلا همین بالا رو اگه براش یه دکمه بذارم که با زدن روی اون دکمه فعال بشه. واقعا کار میکنه.
ولی وختی داخل یک فانکشن میذارمش که وقتی تایم به فلان رسید پخش بشه. پخش نمیشود.
من هم با این مشکل مواجه شدم. اصل این قضیه برمیگرده به محدودیت نسبتا جدیدی از طرف browser ها که اومدن قانونی گذاشتند که قبل از user interaction فایل صوتی نباید پخش بشه. یعنی برای اینکه یک صوت پخش بشه حتما قبلش بایستی یک تعامل از طرف کاربر انجام بشه (مثل کلیک بروی یک گزینه یا ...) و به نظرم قانون خوبی هم هست و جلوی پخش ناخواسته صوت رو موقع وب گردی میگیره.
تو لینک های زیر تفصیلی تر به این قضیه و راهکارهای حلش اشاره شده:
https://stackoverflow.com/questions/34837930/audio-tag-autoplay-not-working-in-mobile
https://stackoverflow.com/questions/13266474/autoplay-audio-on-mobile-safari
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟