یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام وقتتون بخیر 👋
یک موزیک پلیر با استفاده از جاوا اسکریپت نوشتم و داره به درستی کار میکنه.
مشکلی که وجود داره اینه که کد جاوا اسکریپت من قبل از لود شدن فایل صوتی اجرا میشه و به همین دلیل NaN برمیگردونه.
تونستم با یک تاخیر با تابع settimeout این مشکل رو حل کنم که بعد از چند صدم ثانیه این کارو انجام بده که فایل لود شده باشه ولی اصلا کار درست و بهینه ای نیست ، الان میخوام زمانی که فایل ها لود شدن تابع فراخوانی بشه.
آدرس مخزن :
https://github.com/arminamirinasab/*****-Player
سلام دوست عزیز
برای اینکه script شما بعد از اینکه dom لود شد اجرا بشه کافیه از صفت defer تو تگ script استفاده کنی.
اما برای مشکل شما موقعی که میخوای duration یک audio رو بگیری باید مطمئن باشی که فایل لود شده باشه در غیر این صورت null برمیگردونه , برای چک کردن هم رویدادی د اریم به نام loadedmetadata که میتونی تو این لینک در موردش مطالعه کنی.
مثال کد شما
function calculateTime() {
musicElem.addEventListener('loadedmetadata', () => {
let songTime = Math.floor(musicElem.duration);
let sMinute = Math.floor(songTime / 60);
let sSecond = songTime - sMinute * 60;
if (sSecond < 10) {
sSecond = '0' + sSecond;
}
infoTime.innerHTML = `${sMinute}:${sSecond}`;
});
}
خیلی ممنونم ازت
از defer و async استفاده کرده بودم ولی مشکل حل نشده بود.
ولی ایونت loadmetadata کار کرد ، از این ایونت استفاده نکرده بودم تا به حال !
ممنون از این که مخزن و کد های من رو بررسی کردید و سپاس بابت زمانی که گذاشتید 🌹
اگه ممکنه آدرس گیت هابتون رو برام قرار بدید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟