آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مدیاپلیر + سیک بار

Hajhosseini  11 سال پیش  11 سال پیش
+1 0

مدیاپلیری رو درنظر بگیرید که با استفاده از seekBar میشه مدت زمان صدا رو توش تغییر داد. دکمه pause و stop داره و زمان پخش رو در تکست ویو نمایش میده.
خلاصه: وقتی با سیک بار موزیک رو جلو میبرم و همون موقع استاپ رو میزنم، چند ثانیه طول میکشه تا استاپ یا pause اعمال بشه
توضیحات:
همه قابلیت های بالا درست کار میکنن، ولی زمانی که موزیک play میشه اگر با seekBar موزیک رو جلو ببریم(موزیک به درستی جلو میره) و در همون لحظه دکمه pause یا stop رو بزنیم، چند ثاینه طول میکشه تا موسیقی استاپ بشه. 
جالب اینجاست که توی حالت بالا اگر صدای گوشی رو کم و زیاد کنیم مدیا کم و زیاد نمیشه و فقط ringtone کم و زیاد میشه ولی در حین پخش موسیقی media کم و زیاد میشه.
حتی کد های stop یا pause کردن موسیقی هم اجرا میشن ولی بسته به میزانی که سیک بار رو جلو بردیم دیر عمل میکنن.

راه حل های ممکن:
فورس کردن ترد(اولویت دادن) --- کار نکرد
اجرای دستور روی ترد اصلی --- کار نکرد
استفاده از BackGround ترد --- کار نکرد
هندل کردن دستی pause به صورتی که مقدار رو ذخیره کنم و دوباره یک مدیاپلیر جدید بسازم --- (تست نشده)
استفاده از متغیر های boolean برای فلگ گذاری --- کارنکرد
سبک کردن پروژه --- تمامی کدهای اضافی حذف شد و فقط pause باقی موند ولی کار نکرد

دوستان اگر راه حل دیگه ای به ذهنتون میرسه ممنون میشم بگید...

+1 0
فقط یبار با MediaPlayer سروکله زدم، از سورس آقای حسین زاده استفاده کردم، کم و زیاد کردن صدا رو نمیدونم ولی مشکل تاخیر در قطع صدا رو نداشت، لینک (11 سال پیش)
+1 0
دارم روش کار میکنم، سورس مدیاپلیر به صورت native نوشته شده که احتمالا با c++ هست. پس امکانش هست که فلگ های من دیرتر از متدهایی مانند isPlaying و ... مقداردهی میشن، ولی هنوز نتیجه نگرفتم. سورس مهندس حسین زاده رو حتما چک میکنم، مرسی اسپریت عزیز (11 سال پیش)
+2 0
پروژه آقای حسین زاده رو چک کردم، وقتی سیک بار رو به چپ و راست میکشیم هیچ عملی انجام نمیشه و فقط داره کار progressBar رو انجام میده. ولی وقتی سیک بار رو درست کردم درست کار کرد، این در حالی بود که رینگتون رو پخش میکرد و زمانی که یکی از موزیک هارو با موزیکی که 1 ساعت طول داره عوض کردم همون اتفاق افتاد دوباره... (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  11 سال پیش
+2 0

مشکل به روش بسیار مسخره ای حل شد:
من دقت کردم زمان هایی اتفاق بالا می افته، اگر دوباره play کنیم و بعد pause رو بزنیم (حتی اگر سریع این کار رو بکنیم) موزیک pause میشه. همین رو توی کد نوشتم:

                     mp.pause();
                    mp.start();
                    mp.pause();

درسته روش اصولی نیست، ولی چون مشکل از سمت سیستم عامل اندروید بود تنها راهی که میتونم تایید کنم درست کار میکنه همینه، اگر دوستان راه بهتری سراغ دارن، اطلاع بدن.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .