کلیدستان

نسخه‌ی کامل: عدم اجرا وهمچنین ناقص اجرا شدن فایل صوتی (اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام .


-  تعداد زیادی اکتیویتی داریم ، که با دکمه های next Activity و  previous Activity که درون هر اکتیوتی تعبیه شده از یک اکتیویتی به اکتیویتی دیگه می ریم .
-  به محض اجرا شدن هر اکتیویتی یک فایل صوتی چند ثانیه ای (3ثانیه ای ) اجرا میشه (کدهای پلیر درون متد onCreate تعریف شده تا همزمان با اجرا شدن اکتیویتی فایل صوتی هم اجرا بشه ) .

مشکل:
بعد از اینکه مثلا از اکتیوتی 1 شروع می کنیم و به اکتیوتی 5 می رسیم ،توی اکتیویتی 5 فایل صوتی اجرا نمی شه و یا ناقص اجرا میشه . این اجرا نشدن یا ناقص اجرا شدن هم تابع قانون خاصی نیست و رندوم وار اتفاق می افته ، ممکنه تو اکتیویتی اول اتفاق بیفته یا تو اکتیوتی بیستم !
البته با دوباره اجرا کردن اون اکتیویتی فایل صوتی به صورت کامل و درست پخش میشه .
( این رو هم بگم که دستور  ()finish توی متد onStop برای هر اکتیویتی تعریف شده تا هنگام رفتن به اکتیویتی بعدی ، اکتیویتی قبلی kill بشه  و دیگه اینکه دکمه ای واسه stop شدن فایل صوتی تعبیه نشده  ) .


سوال :

ایراد کار چی میتونه باشه ؟
سلام.
موضوع زیر را تا آخر بخوانید (راه حل هایی در ارسال های آخر آن نوشته شده است) :

http://www.kelidestan.com/forum/showthread.php?tid=4923

در واقع راه حل را به صورت استفاده از دستور reset() ذکر کرده اند.

سلام .
 با تشکر از مدیر ، مشکل بنده حل شد .

چون احتمالش زیاده دوستان دیگه هم همین مشکل واسشون پیش بیاد توضیحات زیر رو یادآوری می کنم :

به گفته developer.android.com موقع کدنویسی واسه player باید چرخه حیات پلیر رو تو ذهنتون داشته باشین :


 اگه دقت کنین حیات یک پلیر بین ()reset   و ()release قرار می گیره ، حالا اگه شما پلیر رو stop کنین ولی بعد از stop فراموش کنید پلیر رو release کنین ، پلیر به حیاتش ادامه میده و طبق گفته http://developer.android.com/guide/topic...layer.html هنگامی که شما از اکتیویتی خارج میشین (یا حتی حالت صفحه شما از افقی به عمودی و بالعکس تغییر می کنه ) چون هنوز پلیر داره به حیات خودش ادامه میده باعث ایجاد بروز مشکلاتی (در مورد من باعث می شد که رندوم وار بعضی از فایل های صوتی توی اکتیویتی های دیگه اجرا نشه ) در برنامه اندروید میشه ، بنابراین حتما باید برای اینکه پلیر به حیاتش خاتمه بده بعد از stop کردنش اون رو release کنین .

مشکل من هم با راهکار ساده زیر حل شد (متدهای زیر رو بعد از کدهایی قرار دادم که کاربر رو به اکتیویتی بعدی هدایت می کرد ، یعنی قبل از اینکه فایل صوتی در اکتیویتی بعدی اجرا بشه ابتدا player رو stop   و بعدش هم release کردم ) :

کد پی‌اچ‌پی:
player.stop();
player.release(); 

موفق باشید .