1kiomars
4 سال پیش توسط 1kiomars مطرح شد
17 پاسخ

ارور ReferenceError Audio is not defined در ناکست جی اس

سلام
توی state به این صورت میخوام از کلاس Audio یک آبجکت بسازم ولی ارور میده

export const state = () => ({
  [AUDIO]: new Audio()
})
Audio is not defined

ثبت پرسش جدید
اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش مطرح شد
1

به هیچ وجه من الوجوه


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

سلام این Audio چیه و از کجا اومده ؟


1kiomars
@kiomars.geytasii 4 سال پیش آپدیت شد
سهیل حیدری
@hbr 4 سال پیش مطرح شد
0

این دستور رو اینطوری بزنید:

[AUDIO]: new Audio()
[AUDIO]: new HTMLAudioElement.Audio()

1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0
HTMLAudioElement is not defined

1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

دوستان راهی هست برای حل این ارور؟


1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

این کلاس در مرورگر جوابگو هست اگر هم اجرا بشه در نهایت خروجی زیر رو به نمایش در میاره
به دو روش میشه صداش زد

new Audio()
new window.Audio()

در نهایت هم چنین چیزی بر میگردونه

<audio preload="auto"></audio>

1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

@hesammousavi
من همین کدها رو دقیقا در vue مینویسم و بدون هیچ مشکلی اجرا میشن احتمالا مشکل از ناکست نظر شما چیه ؟


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش مطرح شد
0

ناکست قسمت سمت سرور این رو نداره. باید شرط بزاری فقط سمت کلاینت اجرا بشه

if(process.client){
...
}

1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

@ashkannazari248
این شرط به چه صورت داخل state قرار بدم ؟


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش آپدیت شد
0

میتونید مقدار دهی اولیه نکنید و توی میدلور یا جای دیگه مقدار دهی کنید. برای مقدار دهی اولیه میتونید این کار رو بکنید

export default ()=>({
audio:process.client?new Audio():null
});

یعنی اگه سمت کلاینت بود مقدار بده و اگه نه نال بزار. میتونید نتیجه رو مساوی با یه ارو فانکشن بزارید که یه مقدار رو ریترن میکنه


1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

پروژه به صورت universal با این شرط حتما برابر null قرار میگیره


1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

@hesammousavi
@ashkannazari248
نمیخواهم audio به صورت نال باشه ممنون میشم راهنمایی کنید


1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
0

از onNuxtReady میشه استفاده کرد؟


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش مطرح شد
0

سمت سرور اصلاً این وجود نداره. وقتی چیزی وجود نداره شما اجازه استفاده ندارید.
توضیح در سایت ناکست :
https://nuxtjs.org/faq/window-document-undefined/


1kiomars
@kiomars.geytasii 4 سال پیش مطرح شد
-1

@ashkannazari248
منم میدونم وجود نداره راهی نداره بشه استفاده کرد؟


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 4 سال پیش مطرح شد
1

به هیچ وجه من الوجوه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام