با سلام خدمت استاد محترم و تشکر بابت آموزش این جلسه.
نکته که میخواستم عرض کنم این است که ما در خط 48 کد مقدار setInterval را برابر this._clearSetProgress قرار دادیم.
بعد در خط 54 دوباره تابعی با همین نام گذاشتیم که مقدار interval را clear کند. در اینجا ما از یک نام 2 بار استفاده کردیم، (یک بار برای نام متغییر برای ذخیره سازی، بار دوم برای اسم تابع) که این کار اشتباه است و باعث به وجود آمدن error not a function در هنگام pause و ended میشود. یعنی عملا تابع زیر (خط 54 تا 56 کد) کار نمی کند.
_clearSetProgress() { clearInterval(this._clearSetProgress) }
راه حل:
برای درست شدن این مشکل و رفع خطا به وجود آمده کافی است نام تابع یا متغییر را تغییر دهیم. به عنوان مثال کد زیر :
_startProgress() { this._clearProgress = setInterval(() => { const {currentTime, duration} = this._player this._progressBar.style.width = `${(currentTime / duration) * 100}%` }, 50); } _clearSetProgress() { clearInterval(this._clearSetProgress) }
موفق باشید.