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

لود متن و آهنگ در یک اکتیوتی


nasim

سوال

سلام

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

بذارین اینطوری بگم

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

riZgr.png

 

میخوام وقتی کاربر تو اکتیوتی تیتر روی لیست ویو مورد نظر کلیک کرد بره داخل اکتیوتی خواندن و اون متن رو بخونه این قسمت مشکلی نداره ولی وقتی میخوام برای این صفحه یه اهنگ هم لود کنم نمیشه مثل این میخوام باشه

RZhSB.jpg

 

کدهایی هم که نوشتم این بوده

cursor1 = Main.sql1.ExecQuery("select * from tbl where fasl = '"& Main.megdar &"'")
For i = 0 To cursor1.RowCount-1
cursor1.Position=i
Label1.Initialize("")
t.Initialize("t",1000)
med.Initialize2("med")
med.Load(File.DirAssets,i&".mp3")
SeekBar1.Max=med.Duration/1000
SeekBar1.Value=0
Label2.Text=tabdil(med.Duration)
Label3.Text="0:00"
Label1.Tag = 

ولی فقط اهنگ اول رو لود میکنه درضمن من همه آهنگ های رو داهل Files گذاشتم و هیج ارتباطی به دیتابیس ندارن میخواستم با for جوری بشه با لود تن مشخص از دیتابیس اهنگ مورد نظر رو هم لود کنه ولی نمیشه

باید چیکار کنم؟

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

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

سلام

مثل مشکل شما اینه که نمیدونید Assets  کجاست ؟ درسته ؟ :DD:

 

پوشه ی Files  همون Assets  هستش :DD:

شما فایل های صوتی مثلا عهد.mp3  رو توی پوشه Files  کپی کنید و کد رو اجرا کنید :give_rose:

ببینید پوشه Files  بعد از کامپایل تبدیل میشه به پوشه Assets  موجود در فایل Apk.

کلا بیخیال پوشه Files  همون Assets :DD:

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

:oops:  :oops:  :oops: پس چرا من نمیبینم شرمنده :fekr:

در ضم فراز نه افراز باید به چند نفر دیگه توضیح بدم  :DD:  :oops:

کجا گذاشتی سورس رو

 

خوبی گلم ؟ :t6033: :t6033:

 

میدونی چند تا اسپم الکی دادی واسه ی پوشه :DD: ؟

 

@nasim

شما هر فایلیو که از منوی Files داخل پروژتون ادد کنید اصطلاحا میگن رفته توی پوشه

Assets :S

 

 

شما عهد.mp3 رو ادد کنید از منوی Files و تموم !!!!!!!!!!

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

سلام

مثل مشکل شما اینه که نمیدونید Assets  کجاست ؟ درسته ؟ :DD:

 

پوشه ی Files  همون Assets  هستش :DD:

شما فایل های صوتی مثلا عهد.mp3  رو توی پوشه Files  کپی کنید و کد رو اجرا کنید :give_rose:

ببینید پوشه Files  بعد از کامپایل تبدیل میشه به پوشه Assets  موجود در فایل Apk.

کلا بیخیال پوشه Files  همون Assets :DD:

 

خوبی گلم ؟ :t6033: :t6033:

 

میدونی چند تا اسپم الکی دادی واسه ی پوشه :DD: ؟

 

@nasim

شما هر فایلیو که از منوی Files داخل پروژتون ادد کنید اصطلاحا میگن رفته توی پوشه

Assets :S

 

 

شما عهد.mp3 رو ادد کنید از منوی Files و تموم !!!!!!!!!!

خیلیییی خلی ممنونم از آقای مجید آرتا و آقای عرفانی

فقط یه مشکل کوچیک دیگه

من وقای اسم موزیک رو فارسی میذارم موقع ران گرفتن این ارور رو میده

 

9ae1N.png

 

ولی وقتی اسمارو هم تو دیتابیس برای متن و هم برای آهنگ انگلیسی میکنم درست میشه ولی آخه نمیشه که اسم لیست ویو ها رو انگلیسی بنویسم، ضایعس

برای این مشکل چیکار کنم

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

 

خیلیییی خلی ممنونم از آقای مجید آرتا و آقای عرفانی

فقط یه مشکل کوچیک دیگه

من وقای اسم موزیک رو فارسی میذارم موقع ران گرفتن این ارور رو میده

 

9ae1N.png

 

ولی وقتی اسمارو هم تو دیتابیس برای متن و هم برای آهنگ انگلیسی میکنم درست میشه ولی آخه نمیشه که اسم لیست ویو ها رو انگلیسی بنویسم، ضایعس

برای این مشکل چیکار کنم

 

فایل موسیقیو ک فارسی ادد کردید پاک کن و با اسم انگلیسی اددش کن توی منوی Files :)

 

مثلا فایل فجر.mp3 رو rename کن و fajr.mp3 کن و بعد اددش کن :)

 

بعد بهش ادرس بدید مثلا این شکلی

Dim mp As MediaPlayer
mp.Initialize("")
mp.Load(File.DirAssets,"fajr.mp3")

فارسی ک نمیشه اسمش باشه :aggressive: :aggressive: :aggressive: :aggressive:

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

فایل موسیقیو ک فارسی ادد کردید پاک کن و با اسم انگلیسی اددش کن توی منوی Files :)

 

مثلا فایل فجر.mp3 رو rename کن و fajr.mp3 کن و بعد اددش کن :)

 

بعد بهش ادرس بدید مثلا این شکلی

Dim mp As MediaPlayer
mp.Initialize("")
mp.Load(File.DirAssets,"fajr.mp3")

فارسی ک نمیشه اسمش باشه :aggressive: :aggressive: :aggressive: :aggressive:

خب آخه آقا الیاس من با اضافه کردن یه آهنگ مشکلی ندارم کهههه

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

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

خب آخه آقا الیاس من با اضافه کردن یه آهنگ مشکلی ندارم کهههه

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

 

خوب ب این شکل مبشه و باید با Select Case کار کنید

 

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

 

بعدش با دستور Select Case میایم میگیم مثلا اگر ایتم 1 کلیک شد بیا و String رو بذار فجر و اون اهنگ fajr.mp3 رو ک قبلا ادد کردید لود میکنه و پخش میکنه

Sub Globals
Private ListView1 As ListView
Dim mp As MediaPlayer
Dim str As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
mp.Initialize
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
	Select Position
		Case 0
			str = "fajr"
			mp.Load(File.DirAssets,str&".mp3")
			mp.Play
			Case 1
				str = "esme2"
				mp.Load(File.DirAssets,str&".mp3")
				mp.Play
				Case 2
					str = "esme3"
					mp.Load(File.DirAssets,str&".mp3")
	End Select
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوباره :aggressive:

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

ببینید نیازی نیست از Select  استفاده کنی و برای هر آیتم کد بنویسی

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

ببینید خوشبختانه لیست ویو این قابلیت خوبی رو که داره یک مقدار Return Value  برای آیتم هاش قرار میده که به وسیله توابع نوع دوم می تونید این مقدارو قرار بدید :

AddSingelLine2

AddTwoLines2

.

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

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

مثلا :

آهنگ فجر 320  ----- > نام نمایشی در لیست ویو

fajr.mp3 ------>  اسم فایل در پوشه files

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

حالا مرحله بعدی فرضی میاییم اطلاعات رو از دیتابیس میگیریم و توی لیست نمایش میدیم و اون اسمای انگلیسی رو به عنوان Return Value  مشخص می کنیم و داخل رویداد ItemClick  کنترل می کنیم.

Dim cr As Cursor
cr = SQL.Execute("SELECT * FROM tbl")
For i = 0 To cr.RowCount - 1
 cr.Position = i
 lv.AddSingleLine2(cr.GetString("esme Farsi"),cr.GetString("esme English"))
Next
cr.Close

 خب رویداد آیتم کلیک :

Sub lv_ItemClick(Position As Int , Value As Object)
  mp.Load(File.DirAssets,Value&".mp3")
  mp.Play
End Sub

خب این از این

کد رو با این الگو بنویسید

ببینید مشکلی ندارید توی این مورد.

موفق باشید.

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

دقیقا همینی که شما میگین تو ذهن خودم بود آقا مجید ولی نمیتونستم پیادش کنم

طبق این کدی که شما گفتین با وارد شدن به اکتیوتی شروع میکنه به خوندن آهنگ ولی من میخوام این کار تو کنترل کاربر باشه

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

 

tzXHP.png

 

اما تو اکتیوتی که متن لود میشه ما اومدیم دقیقا همون مقدار که لیست ویو گرفته رو به اهنگ ها نسبت دادیم یعنی اسم آهنگ با تیتر لیست ویو باید تطابق داشته باشه با این صورت

 

2t6uG.png

 

طبق این خط کد

med.Load(File.DirAssets,Main.megdar&".mp3")

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

منظورم اینه بجای کد بالایی که گذاشتیم چی بنویسیم شماره id یا یه اسم دیگه رو بعنوان اسم آهنگ لود کنه؟

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

بایگانی شده

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

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

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