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

سوال درباره soundpool


mohammade79

سوال

سلام دوستان اگر کسی بلده هزینشو تا قرون اخر میدم فقط کمکم کنه ... میخواستم ببینم برای اینکه بخوام با soundpool چند صدا رو پشت هم تکرار کنم و اینجوریه کارم ک روی هر دکمه میزنم یه موزیکی رو پخش میکنه بعدش روی دکمه بعدی ک میزنم میخوام اون موزیک در حال پخش تموم بشه اول، بعدش دکمه ای رو ک زدم پخشش شروع بشه اینم کدامه 

sp5.Initialize(1)
    a = sp.Load(File.DirAssets,"24/" & "a.mp3")
	sp6.Initialize(1)
    b = sp.Load(File.DirAssets,"24/" & "b.mp3")
	sp7.Initialize(1)
    c = sp.Load(File.DirAssets,"24/" & "c.mp3")
	sp8.Initialize(1)
    d = sp.Load(File.DirAssets,"24/" & "d.mp3")
	sp9.Initialize(1)

Sub button27_click
	sp.Play(apa,1,1,1,0,st)
End Sub

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

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

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

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

در در 1396/02/13, 16:39:05، مجید آرتا گفته است :

سلام

بفرمایید با لیست پخش »

PianoWithThread.rar

بله دقیقا همینو میخوام ولی یه مشکلی هست اونم اینه که من با soundpool سرعتو بالا پایین میکردم با مدیا پلیر میشه سرعت موزیک رو بالا پایین کرد؟

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

در 10 دقیقه قبل، mohammade79 گفته است :

بله دقیقا همینو میخوام ولی یه مشکلی هست اونم اینه که من با soundpool سرعتو بالا پایین میکردم با مدیا پلیر میشه سرعت موزیک رو بالا پایین کرد؟

سلام

ببینید اینجا دو مشکل وجود داره

1 - اگر بخوایید با SoundPool  بنویسید، متاسفانه این کلاس تابع isPlaying  نداره و نمیتونید بفهمید اهنگی در حال اجراست یا نه.این کلاس رویدادی برای اینکه بفهمیم آهنگ به اتمام رسیده نداریم ( Complete )

2 - شما اگر بخوایید با MediaPlayer  بنویسید، این کلاس اون مواردی رو که ذکر کردم رو داره به جز setRate  یا همون تنظیم سرعت آهنگ.این مورد رو من توی جاوا چک می کنم اگر کدش باشه واستون به صورت InLineJava  مینویسم.

به هر حال چیزی که شما میخوایید که باید یکسری موارد کنترل بشه با SoundPool  نمیشه ( شایدم من یاد ندارم ) و سایر دوستان نظریه ای داشته باشن.

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

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

در 7 دقیقه قبل، مجید آرتا گفته است :

سلام

ببینید اینجا دو مشکل وجود داره

1 - اگر بخوایید با SoundPool  بنویسید، متاسفانه این کلاس تابع isPlaying  نداره و نمیتونید بفهمید اهنگی در حال اجراست یا نه.این کلاس رویدادی برای اینکه بفهمیم آهنگ به اتمام رسیده نداریم ( Complete )

2 - شما اگر بخوایید با MediaPlayer  بنویسید، این کلاس اون مواردی رو که ذکر کردم رو داره به جز setRate  یا همون تنظیم سرعت آهنگ.این مورد رو من توی جاوا چک می کنم اگر کدش باشه واستون به صورت InLineJava  مینویسم.

به هر حال چیزی که شما میخوایید که باید یکسری موارد کنترل بشه با SoundPool  نمیشه ( شایدم من یاد ندارم ) و سایر دوستان نظریه ای داشته باشن.

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

لطف میکنید ارتا جان یه پیام خصوصی هم دادم چک بشه اگر ممکنه 

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

در در 1396/02/09, 08:13:22، razavioo گفته است :

اگه درست متوجه شدم منظورت اینه که میخوای تا زمانی که انگشت کاربر روی یکی از دکمه ها باشه، آهنگ پخش بشه و به محض اینکه انگشت برداشته شد، آهنگ قطع بشه.

برای این کار کافیه به جای ایجاد دکمه ها از نوع Button، اون ها رو از نوع Panel بسازی و توی رویداد Panel_Touch، بنویسی که اگه حالت فشار دادن Touch بود، آهنگ کارشو ادامه بده و اگه فشار Touch برداشته شد، آهنگ قطع بشه. علت اینکه بایستی از Panel به جای Button استفاده کنی هم همینه که Panel رویداد Touch داره ولی Button فقط رویداد کلیک داره.

نه دوست گلم من رویداد sub button_click رو میدم بهش میزنم رو اون و خودش پلی میکنه وقتی رو دکمه ای دیگر میزنم میهوام اول اون اهنگ قبلیم تموم بشه بعدش اینی که روش زدم یبار پخش بشه پشتش 

در در 1396/02/09, 09:32:54، مجید آرتا گفته است :

سلام

چیزی که من از گفته هاتون متوجه شدم، اینکه یه ریتم کاملا تموم بشه و بعد در صورت تاچ شدن روی دکمه ی دیگه ای هم بعد از اتمام اجرا بشه ؟ خب در حد فرضیه میگم که از ترد استفاده کنید، چون رویداد Ended  داره و می تونید برنامتون رو هندا کنید.

تست نکردم ولی خودتون روی این موضوع کار کنین.بازم نتونستید کاری کنید اعلام کنید یه نمونش رو واستون اوکی کنم.

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

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

در 3 ساعت قبل، mohammade79 گفته است :

نه دوست گلم من رویداد sub button_click رو میدم بهش میزنم رو اون و خودش پلی میکنه وقتی رو دکمه ای دیگر میزنم میهوام اول اون اهنگ قبلیم تموم بشه بعدش اینی که روش زدم یبار پخش بشه پشتش 

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

من اینطوری متوجه شدم از حرفاتون که به فرض 5 تا دکمه دارین و 5 تا صوت؛؛میخواین وقتی دکمه یک زده شد صوت 1 پخش بشه اگه بلافاصله دکمه 2 زده شد؛؛صوت اولی قطع بشه و صوت دومی شروع بشه؛؛؛درسته؟؟اگه اینطوریه که شما فقط لازمه تو همه باتن هات از یک متغیر مدیا پلیر استفاده کنی،،،منتها اینطوری هم صوت بلافاصله قطع میشه و زیاد جالب در نمیاد

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

در 20 ساعت قبل، mohammade79 گفته است :

نه دوست گلم من رویداد sub button_click رو میدم بهش میزنم رو اون و خودش پلی میکنه وقتی رو دکمه ای دیگر میزنم میهوام اول اون اهنگ قبلیم تموم بشه بعدش اینی که روش زدم یبار پخش بشه پشتش 

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

سلام

فایل apk  که واستون پیوست کردم رو دانلود کنید، تست کنید اگه اون چیز مد نظرتون هستش بنده در خدمتتون هستم و هزینه ای رو ازتون میگیرم.سورس رو با SoundPool  ننوشتم، به وسیله MediaPlayer  نوشته شده.

PianoWithThread.rar

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

در در 1396/02/10, 16:25:29، davoodebrahimi گفته است :

من اینطوری متوجه شدم از حرفاتون که به فرض 5 تا دکمه دارین و 5 تا صوت؛؛میخواین وقتی دکمه یک زده شد صوت 1 پخش بشه اگه بلافاصله دکمه 2 زده شد؛؛صوت اولی قطع بشه و صوت دومی شروع بشه؛؛؛درسته؟؟اگه اینطوریه که شما فقط لازمه تو همه باتن هات از یک متغیر مدیا پلیر استفاده کنی،،،منتها اینطوری هم صوت بلافاصله قطع میشه و زیاد جالب در نمیاد

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

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

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

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

در 9 ساعت قبل، mohammade79 گفته است :

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

سلام دوستم.

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

شما یه لایوت بساز توش 5 تا باتن بذار و اونارو تعریف کن(معرفی+ ساب کلیکشون) تو کد نویسی هم اینطوری میشه

Sub Globals
	Private Button1 As Button
	Private Button2 As Button
	Private Button3 As Button
	Private Button4 As Button
	Private Button5 As Button
	Dim med As MediaPlayer
End Sub
Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("l1")
	med.Initialize2("med")
End Sub
Sub Button5_Click
	med.Load(File.DirAssets,"l5.ogg")
	med.Play
End Sub
Sub Button4_Click
	med.Load(File.DirAssets,"l4.ogg")
	med.Play
End Sub
Sub Button3_Click
	med.Load(File.DirAssets,"l3.ogg")
	med.Play
End Sub
Sub Button2_Click
	med.Load(File.DirAssets,"l2.ogg")
	med.Play
End Sub
Sub Button1_Click
	med.Load(File.DirAssets,"l1.ogg")
	med.Play
End Sub
Sub Activity_Resume

End Sub
Sub Activity_Pause (UserClosed As Boolean)

End Sub

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

dayvid

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

در در 1396/02/11, 09:16:35، مجید آرتا گفته است :

سلام

فایل apk  که واستون پیوست کردم رو دانلود کنید، تست کنید اگه اون چیز مد نظرتون هستش بنده در خدمتتون هستم و هزینه ای رو ازتون میگیرم.سورس رو با SoundPool  ننوشتم، به وسیله MediaPlayer  نوشته شده.

PianoWithThread.rar

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

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

در 4 ساعت قبل، mohammade79 گفته است :

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

سلام

بفرمایید با لیست پخش »

PianoWithThread.rar

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

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

 

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

در 9 ساعت قبل، razavioo گفته است :

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

 

سلام دوست عزیزم بنده منظورم این نیست ک یه تیکه از نت رو پلی کنم مثل پیانو ... یه اهنگه ۶ ثانیه ای هستش ک روش میزنم باید اجرا بشه تا وقتی ک دستمو میزارم رو ریتم دیگه ای اون ریتم تموم بشه بعد ریتمی ک انتخاب کردم شروع بشه چون کاربران از ریتم های درام سر درنمیارن ک کجا شروع کنن یا تموم کنن 

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

در 7 ساعت قبل، mohammade79 گفته است :

سلام دوست عزیزم بنده منظورم این نیست ک یه تیکه از نت رو پلی کنم مثل پیانو ... یه اهنگه ۶ ثانیه ای هستش ک روش میزنم باید اجرا بشه تا وقتی ک دستمو میزارم رو ریتم دیگه ای اون ریتم تموم بشه بعد ریتمی ک انتخاب کردم شروع بشه چون کاربران از ریتم های درام سر درنمیارن ک کجا شروع کنن یا تموم کنن 

اگه درست متوجه شدم منظورت اینه که میخوای تا زمانی که انگشت کاربر روی یکی از دکمه ها باشه، آهنگ پخش بشه و به محض اینکه انگشت برداشته شد، آهنگ قطع بشه.

برای این کار کافیه به جای ایجاد دکمه ها از نوع Button، اون ها رو از نوع Panel بسازی و توی رویداد Panel_Touch، بنویسی که اگه حالت فشار دادن Touch بود، آهنگ کارشو ادامه بده و اگه فشار Touch برداشته شد، آهنگ قطع بشه. علت اینکه بایستی از Panel به جای Button استفاده کنی هم همینه که Panel رویداد Touch داره ولی Button فقط رویداد کلیک داره.

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

سلام

چیزی که من از گفته هاتون متوجه شدم، اینکه یه ریتم کاملا تموم بشه و بعد در صورت تاچ شدن روی دکمه ی دیگه ای هم بعد از اتمام اجرا بشه ؟ خب در حد فرضیه میگم که از ترد استفاده کنید، چون رویداد Ended  داره و می تونید برنامتون رو هندا کنید.

تست نکردم ولی خودتون روی این موضوع کار کنین.بازم نتونستید کاری کنید اعلام کنید یه نمونش رو واستون اوکی کنم.

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

بایگانی شده

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

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

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