رفتن به مطلب
  • 0

مقدار seekbar


batman123

سوال

سلام.

من داخل برنامم یک سیک بار دارم و یک متغیر که مقدار سیک بار رو به خودش میگیره و داخل یک لیبل نمایش میده

حالا من میخوام وقتی سیک بار به عدد 60 رسید، متغیر من مقدارش 0 بشه و از 0 دوباره بشماره بیاد بالا.

اما چون متغیر به مقدار سیک بار واسبتس، مقدار متغیر از عدد 60 رد میشه و 0 نمیشه.

میخوام ببینم کسی بلده مقدار متغیر رو 0 کنه و متغیر دوباره از 0 بشماره

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

10 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در ۱۴۰۰/۹/۳۰ در 09:32، DexterFstone گفته است:

سلام این مورد را تست کنید

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	if Value < 60 then
	x = Value
	Label1.text = x
    else if Value >= 60 then
	x = Value - 60
	Label1.text = x
End Sub

 

داداش دستت دردنکنه

این کد کار میکنه اما بذار یه جوره دیگه سوالو مطرح کنم.

من میخوام مثل یه پلیر، وقتی ثانیه اون فایل صوتیم به 60 رسید،دقیقه رو یکی اضافه کنه و ثانیه رو از 0 شروع کنه.

اینو چه طوری بزنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۱ در ۰۱:۴۹، batman۱۲۳ گفته است:

داداش دستت دردنکنه

این کد کار میکنه اما بذار یه جوره دیگه سوالو مطرح کنم.

من میخوام مثل یه پلیر، وقتی ثانیه اون فایل صوتیم به 60 رسید،دقیقه رو یکی اضافه کنه و ثانیه رو از 0 شروع کنه.

اینو چه طوری بزنم؟

برای اینکه پلیر پیاده سازی کنید اونم فقط با ی سیکبار اول باید ک متغیر کلی برای طول فیال در نظر بگیری بعد باید متناسب با اون مقدار میزان ماکس سیکبار را تغییر بدی که فکنم باید از XUI Views استفاده کنی خب حالا توی رویداد تغییر مقدار سیکبارت بیا و مثل زیر عمل کن

Global:
Dim Time as int
Dim Timer1 as Timer

Sub seekbar_valuechangerd:
Dim m as int = Time / 60
Dim s as int = Time Mod 60
Label1.text = m & ":" & s

Sub Timer1_Tick:
if mediaplayer.playing
	seekbar.value = seekbar.value + 1

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

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

موفق باشی:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۱ در ۱۳:۰۰، DexterFstone گفته است:

برای اینکه پلیر پیاده سازی کنید اونم فقط با ی سیکبار اول باید ک متغیر کلی برای طول فیال در نظر بگیری بعد باید متناسب با اون مقدار میزان ماکس سیکبار را تغییر بدی که فکنم باید از XUI Views استفاده کنی خب حالا توی رویداد تغییر مقدار سیکبارت بیا و مثل زیر عمل کن

Global:
Dim Time as int
Dim Timer1 as Timer

Sub seekbar_valuechangerd:
Dim m as int = Time / 60
Dim s as int = Time Mod 60
Label1.text = m & ":" & s

Sub Timer1_Tick:
if mediaplayer.playing
	seekbar.value = seekbar.value + 1

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

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

موفق باشی:53:

برادر اینی تعریف کردید:

Dim Time as int

این کجا مقداردهی شده؟!

این دستورات شما اصلا مقدار لیبل رو تغییر نمیده!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مشکلشو تقریبا برطرف کردم.

با اضافه کردن این خط توی رویداد تیک تایمر

time=seekbar.value

 

و مسئله بعدی اینه که تایم صدا رو درست نمایش نمیده

مثلا صدا 3 دقیقس اما زمان مثلا 1:59 آخرشه.

درحالی که 3:00 باید آخرش باشه.

دلیل این مسئله چیست؟

 

و این که با این کد، ثانیه از 2 شروع میشه، نه از 0

دلیل این چی میتونه باشه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲ در 01:27، batman123 گفته است:

و مسئله بعدی اینه که تایم صدا رو درست نمایش نمیده

مثلا صدا 3 دقیقس اما زمان مثلا 1:59 آخرشه.

درحالی که 3:00 باید آخرش باشه.

دلیل این مسئله چیست؟

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

و یاد باشه که مقدار طول صدا را که دریافت میکنی بر حسب میلی ثانیه هست یعنی اول باید بر 1000 تقسیم کنی تا به ثانیه تبدیل بشه

من ی کتابخونه برای صدا نوشتم DGAudio از اون استفاده کن هم بهت تایم بر میگردونه (قانیه ، دیقه ، ساعت ، میلی ثانیه) هم امکانات دیگه ای داره و فقط باید به سیکبارت متصلش کنید به روش قبلی

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

در ۱۴۰۰/۱۰/۲ در 01:27، batman123 گفته است:

و این که با این کد، ثانیه از 2 شروع میشه، نه از 0

دلیل این چی میتونه باشه؟

حتما کدهاتون قرار بدید تا بررسی بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲ در 10:30، DexterFstone گفته است:

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

و یاد باشه که مقدار طول صدا را که دریافت میکنی بر حسب میلی ثانیه هست یعنی اول باید بر 1000 تقسیم کنی تا به ثانیه تبدیل بشه

من ی کتابخونه برای صدا نوشتم DGAudio از اون استفاده کن هم بهت تایم بر میگردونه (قانیه ، دیقه ، ساعت ، میلی ثانیه) هم امکانات دیگه ای داره و فقط باید به سیکبارت متصلش کنید به روش قبلی

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

حتما کدهاتون قرار بدید تا بررسی بشه

ممن.ن میشم لینکی از کتابخونتون بدید داشته باشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲ در ۱۶:۵۰، batman۱۲۳ گفته است:

ممن.ن میشم لینکی از کتابخونتون بدید داشته باشم

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۹/۳۰ در ۰۱:۱۷، batman۱۲۳ گفته است:

سلام.

من داخل برنامم یک سیک بار دارم و یک متغیر که مقدار سیک بار رو به خودش میگیره و داخل یک لیبل نمایش میده

حالا من میخوام وقتی سیک بار به عدد 60 رسید، متغیر من مقدارش 0 بشه و از 0 دوباره بشماره بیاد بالا.

اما چون متغیر به مقدار سیک بار واسبتس، مقدار متغیر از عدد 60 رد میشه و 0 نمیشه.

میخوام ببینم کسی بلده مقدار متغیر رو 0 کنه و متغیر دوباره از 0 بشماره

ممنون

سلام این مورد را تست کنید

Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
	if Value < 60 then
	x = Value
	Label1.text = x
    else if Value >= 60 then
	x = Value - 60
	Label1.text = x
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۲ در ۱۰:۳۰، DexterFstone گفته است:

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

و یاد باشه که مقدار طول صدا را که دریافت میکنی بر حسب میلی ثانیه هست یعنی اول باید بر 1000 تقسیم کنی تا به ثانیه تبدیل بشه

من ی کتابخونه برای صدا نوشتم DGAudio از اون استفاده کن هم بهت تایم بر میگردونه (قانیه ، دیقه ، ساعت ، میلی ثانیه) هم امکانات دیگه ای داره و فقط باید به سیکبارت متصلش کنید به روش قبلی

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

حتما کدهاتون قرار بدید تا بررسی بشه

ممنون از کتابخونتون

ببینید من با استفاده از مدیاپلیر همه مشکلاتو حل کردم

منتها وقتی کاربر سیک بار رو جا به جا میکنه، زمان بهم میخوره

مثلا اگه زمان صدا 3 دقیقه باشه روی 1 دقیقه و 50 ثانیه صدا تموم میشه درحالی که سیک بار هنوز کامل پر نشده

این دستورشه

mp.position=value*mp.Duration/1000

این دستورو من توی رویداد valueChange سیک بار مینویسم، زمانی که کاربر میاد و مقدار سیک بار رو تغییر میده.

اما زمان میریزه بهم

ممنون میشم راهنماییم کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۱۰/۳ در ۱۵:۱۹، batman۱۲۳ گفته است:

ممنون از کتابخونتون

ببینید من با استفاده از مدیاپلیر همه مشکلاتو حل کردم

منتها وقتی کاربر سیک بار رو جا به جا میکنه، زمان بهم میخوره

مثلا اگه زمان صدا 3 دقیقه باشه روی 1 دقیقه و 50 ثانیه صدا تموم میشه درحالی که سیک بار هنوز کامل پر نشده

این دستورشه

mp.position=value*mp.Duration/1000

این دستورو من توی رویداد valueChange سیک بار مینویسم، زمانی که کاربر میاد و مقدار سیک بار رو تغییر میده.

اما زمان میریزه بهم

ممنون میشم راهنماییم کنید.

مقدار max برای سیکبار روی چند قرار دادین؟ باید برابر با طول صدا باشه البته اگه میخواین که کاربر بتونه به میلی ثانیه جا به جا کنه

توی رویداد جابه جایی هم باید 

seekbar1.Max = mp.Duration / 1000

Sub Seekbar1_ValueChanged (Value as int)
	mp.postion = value * 1000

اگه مقدار max سیکبار را بر حسب طول صدا گذاشتین که ضرب یالا را دیگه قرار ندید هم اگه قبلا تقسیم انجام دادین تا به ثانیه تبدیلش کنید ضرب بالا بنویسید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...