barshahi 1 ارسال شده در ۱۳ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۳ اردیبهشت ۱۳۹۴ درود بر همه ی اساتید عزیز من ی برنامه نوشتم که با کلیک بر صفحه یک صدا کوتاه به مدت دو ثانیه پخش میشه! حال مشکل اینجاس که وقتی تعداد کلیک های سریع پشت سر هم زیاد میشه دیگه صدا پخش نمیشه! مثلا 20 بار سریع کلیک میکنم 20بار صدا پخش میشه ولی بعدش تا چند ثانیه دیکه صدا پخش نمیشه ممنون میشم اگه راهنمایی کنید! اینم کدهامه : [shcode=java] public void showBubble(int areaId) { mBubbleMap.clear(); MediaPlayer mp = new MediaPlayer(); Area a = mIdToArea.get(areaId); Log.d("showBubble", "area is" + a.getName()); //mp = MediaPlayer.create(getContext(), R.raw.chord); try { mp.prepare(); mp.prepareAsync(); mp.release(); mp.reset(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (a.getName().equals("وسط")) { mp = MediaPlayer.create(getContext(), R.raw.chord); mp.start(); // Toast.makeText(getContext(), "وسط", 0).show(); } else if (a.getName().equals("کنار")) { mp = MediaPlayer.create(getContext(), R.raw.kenar); // Toast.makeText(getContext(), "کنار", 0).show(); mp.start(); } else { mp = MediaPlayer.create(getContext(), R.raw.miyane); // Toast.makeText(getContext(), "میانه", 0).show(); mp.start(); } if (a != null) { addBubble(a.getName(), areaId); } invalidate(); } [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohammadi66 23 ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ سلام توی هر if ای که قراره یه فایل رو پخش کنی ابتدا قبل از پخش اینها رو قرار بده: mp.release(); mp.stop(); mp.perepare(); بعد پلی کن. انشاالله جواب بده نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
barshahi 1 ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ مالک گزارش اشتراک گذاری ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ سلام ممنون از راهنماییتون ولی نمیخوام صدای قبلی stop بشه حالا اینا رو توی if میزارم ببینم درست میشه یا نه! سپاسگذارم نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohammadi66 23 ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۴ اردیبهشت ۱۳۹۴ بنظرم شما یک متغیر دیگه ای ایجاد کنید چون نمیخواید صدای قبلی استاپ بشه و متغیر mpات مشغوله پس یه متغیر دیگه ای برای هر صدا ایجاد کن که مشکلی ایجاد نشه. نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
barshahi 1 ارسال شده در ۱۵ اردیبهشت ۱۳۹۴ مالک گزارش اشتراک گذاری ارسال شده در ۱۵ اردیبهشت ۱۳۹۴ سپاسگذارم از راهنماییتون مشکل حل شد!! حالا مشکلی که دارم اینه که میخوا یک صدای چند ثانیه ای رو به صورت loop پخش کنم که یک ریتم تکرار میشه و کاربر با پخش ریتم فک کنه که یک فایل پیوسته رو گوش میکنه اما متاسفانه یک وقفه بین loop هست که این ریتمو بهم میریزه!! نمیدونم باید چطوری اینو بنویسم که مشکل برطرف بشه!! اینم کدهامه: [shcode=java] private void playRitm(int i) { MediaPlayer mp_ritm = new MediaPlayer(); mp_ritm = MediaPlayer.create(this, R.raw.yek); if (i == 0) { mp_ritm.stop(); mp_ritm.release(); try { mp_ritm.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp_ritm = MediaPlayer.create(this, R.raw.yek); mp_ritm.setLooping(true); mp_ritm.start(); } else if (i == 1) { mp_ritm.stop(); mp_ritm.reset();mp_ritm.release(); //mp_ritm.stop(); try { mp_ritm.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp_ritm = MediaPlayer.create(this, R.raw.dw); mp_ritm.setLooping(true); mp_ritm.start(); } else if (i == 2) { mp_ritm.stop(); mp_ritm.reset();mp_ritm.release(); try { mp_ritm.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp_ritm = MediaPlayer.create(this, R.raw.se); mp_ritm.setLooping(true); mp_ritm.start(); } else if (i == 3) { mp_ritm.stop(); mp_ritm.reset();mp_ritm.release(); try { mp_ritm.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp_ritm = MediaPlayer.create(this, R.raw.chahar); mp_ritm.setLooping(true); mp_ritm.start(); } else if (i == 4) { mp_ritm.stop(); mp_ritm.reset(); mp_ritm.release(); try { mp_ritm.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mp_ritm = MediaPlayer.create(this, R.raw.panj); mp_ritm.setLooping(true); mp_ritm.start(); } } [/shcode] نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohammadi66 23 ارسال شده در ۱۶ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۶ اردیبهشت ۱۳۹۴ ببین اون صدا ابتدا و انتهاش خالی نیست چون نباید اینجوری باشه احتمال میدم ابتدای اون اهنگ و انتهاش کمی خالیه و وقتی لوپ میشه یکمی از انتهای خالی و ابتدای خالی پخش میشه و شما فکر میکنید وقفه افتاده. با kmplayer پخش کنید و ببینید چند ثانیه بدون صوت است . اگه بود قیچی کنید. موفق نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
barshahi 1 ارسال شده در ۱۶ اردیبهشت ۱۳۹۴ مالک گزارش اشتراک گذاری ارسال شده در ۱۶ اردیبهشت ۱۳۹۴ ممنون از راهنماییتون ولی صداهارو توی استدیو ضبط کردیم و دقیق برش دادیم!! نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mohammadi66 23 ارسال شده در ۱۹ اردیبهشت ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۱۹ اردیبهشت ۱۳۹۴ سلام من تازه فهمیدم علت چیه چون من قبلا تست کرده بودم برا گوشیم مشکلی نداشت ! ولی توی ورژن JellyBean تغییر داده شده شما باید ابتدا چک کنید که گوشی طرف از این نسخه بالاتر هست یا نه و نسبت به ان کد نویسی کنید. [shcode=java] if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { mIntroPlayer.setNextMediaPlayer(mLoopPlayer); } mIntroPlayer.setOnCompletionListener(this); [/shcode] Link نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .