انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل عجیب در پخش تعداد بالای موسیقی در برنامه اندروید

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

#1
با سلام

یک مشکل عجیب واسه من پیش اومده، کسی می تونه راهنمایی کنه؟

من 50 تا اکتیویتی دارم که تو هر کدوم سه تا  button هست. یکی برای رفتن به اکتیویتی بعدی ، یکی برای پخش موسیقی (که میزان پیشرفت هم روی seekbar مشخص میشه)  و یکی هم برای توقف موسیقی. و زمان موسیقی ها هم کوتاه هستش

مشکل من اینه که وقتی 30 تا از موسیقی ها رو گوش می کنم( چه چند ثانیه چه تا آخر) دیگه با کلیلک روی دکمه پخش دیگه تو هیچ کدوم از اکتیویتی ها موسیقی پخش نمیشه، حتی اگه برنامه رو ببندم و دوباره باز کنم. و برای درست شدن باید حتما برنامه رو دوباره نصب کنم که بعد از نصب دوباره هم بیشتر از 30 تا موسیقی را نمیشه گوش داد

اینم اضافه کنم که فرقی نمیکنه که تو کدوم صفحات به موسیقی گوش دادی. مثلا من تو اکتیویتی 1 موسیقی رو پخش می کنم . بعد تو 3 و بعد 7 و بعد 50 و بعد 31 و... و وقتی که تعداد موسیقی هایی که گوش کردی( چه تا آخر موسیقی و چه فقط چند ثانیه اش) به 30 تا برسه دیگه  دکمه های پخش کار نمیکنه و هیچ چیزی پخش نمیشه و seekbar هم هیچ پیشرفتی نداره. ولی میتونی به اکتیویتی بعدی و قبلی رفت.فقط نمیدونم چرا دیگه موسیقی پخش نمیکنه

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

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

#2
سلام.
برای توقف MediaPlayer ، روش release را هم به کار ببرید (هر وقت که دیگر با MediaPlayer کاری نداشتید، از روش release استفاده کنید). یعنی کد زیر :

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

همچنین تعیین کنید که اگر pause شده، هنگام خروج از Activity ، کد بالا اجرا شود (یعنی یک سری کد برای روش های onPause و onStop از Activity بنویسید). در این مورد، کلید زیر را بخوانید :

کلید شماره 2802

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#3
با سلام
مشکلم حل نشد. فقط تونستم کاری کنم که از این اکتیویتی به اون اکتیویتی که رفتم موزیک قطع بشه. ولی همچنان 30 بار که موزیک پخش بشه( مثلا از تو اکتیویتی یک موزیک رو پخش کردم بعد رفتم به اکتیویتی 2 و اونجا موزیک رو پخش کردم و 30 بار این کارو که انجام میدم ) دیگه نمیشه هیچ موزیکی پخش کرد( مگه اینکه گوشی رو خاموش و روشن کنم یا برنامه رو دوباره نصب کنم. انگار پخش 30 باره ی موسیقی حافظه رو پر میکنه. از تمام دستورات تو جاهای مختلف اکتیویتی استفاده کردم ولی نشد که نشد. بعد از اینکه حافظه پر میشه تو برنامه های دیگه ای هم که موزیک توش باشه،موزیک رو پخش نمیکنه.
لطفا یکی کمک کنه. اگه جواب نگیرم نتیجه ی 1 ماه تلاشم دود شده رفته هوا

کد:
package com.ali.music;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class Music1 extends Activity implements OnClickListener {

    SeekBar seek_bar;
    Button play_button, pause_button;
    MediaPlayer mediaPlayer;
    Handler seekHandler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.music1);
        
        

   
    
          Button btn_1=(Button) findViewById(R.id.next);
            btn_1.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    Intent next= new Intent(Music1.this, Music2.class );
                    next.putExtra("btn",100);
                startActivity(next);
                mediaPlayer.stop();
                finish();

                
        
                
                
                }
            });
            
            
                    
                
                
                        
                
                        
                    
                    getInit();
                    seekUpdation();
                }


                public void getInit() {  
                    seek_bar = (SeekBar) findViewById(R.id.seekBar1);
                    play_button = (Button) findViewById(R.id.m1);
                    pause_button = (Button) findViewById(R.id.pause);
                    play_button.setOnClickListener(this);
                    pause_button.setOnClickListener(this);
                    mediaPlayer = MediaPlayer.create(this, R.raw.s1);
                    seek_bar.setMax(mediaPlayer.getDuration());
                }

                Runnable run = new Runnable() {

                    @Override
                    public void run() {
                        seekUpdation();
                    }
                };

                public void seekUpdation() {

                    seek_bar.setProgress(mediaPlayer.getCurrentPosition());
                    seekHandler.postDelayed(run, 1000);
                    seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        
                        @Override
                        public void onStopTrackingTouch(SeekBar seek_bar) {
                            // TODO Auto-generated method stub
                            
                        }
                        
                        @Override
                        public void onStartTrackingTouch(SeekBar seek_bar) {
                            // TODO Auto-generated method stub
                            
                        }
                        
                        @Override
                        public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {
                            if(fromUser){
                                mediaPlayer.seekTo(progress);
                                seek_bar.setProgress(progress);
                            }
                            
                        }
                    });
                }

                @Override
                public void onClick(View view) {
                    switch (view.getId()) {
                    case R.id.m1:
                        mediaPlayer.start();
                        break;
                    case R.id.pause:
                        mediaPlayer.pause();
                    }
                }
                
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    if(fromUser){
                        mediaPlayer.seekTo(progress);
                        seekBar.setProgress(progress);
               
              
                    }
                   }
                    
                    

                          @Override
                            public void onBackPressed() {
                                mediaPlayer.stop();
                    
                                finish();
                        
                    
                                
                        }
                            
}
 
   
پاسخ

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

#4
یعنی از روش release استفاده کردید ولی درست نشد ؟ 
من توی کدهایی که اینجا قرار دادید، روش release رو نمی بینم.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#5
این کدها بدون اون روش هاست

ولی این کدی که شما میگید رو برای دکمه ی next قرار دادم( زیر ()mediaplayer.sotp ولی وفتی رو دیکه next میزدم به اکتیویتی بعدی نمیرفت و خطا میداد.
به نظرمم من باید کاری کنم که وقتی از این اکتیویتی به اکتیویتی بعدی رفتم،اکتیویتی قبلی اطلاعاتش نابود بشه تا تو حافظه ذخیره نشه. ولی نمیدونم باید چیکار کنم که نابود بشه
پاسخ

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

#6
(۱۳۹۳/۰۹/۲۲, ۰۱:۲۲ ق.ظ)'admin' نوشته: یعنی از روش release استفاده کردید ولی درست نشد ؟ 
من توی کدهایی که اینجا قرار دادید، روش release رو نمی بینم.


 

یک نفر این لینک رو برام فرستاد. می تونه مشکل از این باشه؟
http://stackoverflow.com/questions/12102...in-android
پاسخ

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

#7
(۱۳۹۳/۰۹/۲۲, ۰۲:۱۱ ب.ظ)'alizzz' نوشته: یک نفر این لینک رو برام فرستاد. می تونه مشکل از این باشه؟
http://stackoverflow.com/questions/12102...in-android
 

نه از نظر تعداد Activity ، محدودیتی وجود ندارد و مشکل شما از آن نیست. اگر حافظه کم بیاید، خود گوشی، Activity هایی که در پس زمینه (background) هستند را destroy می کند تا حافظه خالی ایجاد شود.
همان release را باید به گونه ای به کار ببرید که باعث force close نشود (تا آنجایی که من می دانم، باید با استفاده از release ، مشکل حل شود). این دفعه، finish را بلافاصله بعد از آن قرار ندهید، بلکه finish را در روش onPause برای Activity بنویسید. یعنی ابتدا release می شود، سپس که در حال رفتن به Activity بعدی است، چون Activity فعلی به حالت pause یا stop می رود، بنابراین اگر روش onPause را برای Activity بنویسیم، کد finish نوشته شده در آن، اجرا خواهد شد.
در این مورد، کلید زیر را بخوانید (برای نوشتن روش onPause برای Activity) :

کلید شماره 2802

یادتون نره که برای تمام مواردی که stop به کار رفته، release را هم به کار ببرید (فقط آن مورد دارای finish بود که باید ملاحظاتی برایش در نظر گرفته می شد).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#8
(۱۳۹۳/۰۹/۲۲, ۰۲:۳۳ ب.ظ)'admin' نوشته:
(۱۳۹۳/۰۹/۲۲, ۰۲:۱۱ ب.ظ)'alizzz' نوشته: یک نفر این لینک رو برام فرستاد. می تونه مشکل از این باشه؟
http://stackoverflow.com/questions/12102...in-android
 

نه از نظر تعداد Activity ، محدودیتی وجود ندارد و مشکل شما از آن نیست. اگر حافظه کم بیاید، خود گوشی، Activity هایی که در پس زمینه (background) هستند را destroy می کند تا حافظه خالی ایجاد شود.
همان release را باید به گونه ای به کار ببرید که باعث force close نشود (تا آنجایی که من می دانم، باید با استفاده از release ، مشکل حل شود). این دفعه، finish را بلافاصله بعد از آن قرار ندهید، بلکه finish را در روش onPause برای Activity بنویسید. یعنی ابتدا release می شود، سپس که در حال رفتن به Activity بعدی است، چون Activity فعلی به حالت pause یا stop می رود، بنابراین اگر روش onPause را برای Activity بنویسیم، کد finish نوشته شده در آن، اجرا خواهد شد. در این مورد، کلید زیر را بخوانید (برای نوشتن روش onPause برای Activity) :

کلید شماره 2802



 

تو اون قسمت که نوشته شده                 // your codes for pause  باید کدوم از قسمت از کدهایی که تو بالا براتون فرستادم را قرار بدم. چون قبلا قرار دادم ولی خطا داد

@Override
        protected void onPause() {
                // TODO Auto-generated method stub
                super.onPause();
               
                // your codes for pause
 
      }  
پاسخ

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

#9
و اگه نتونستم مشکل رو حل کنم،شما پیشنهادی دارید که تعداد اکتیویتی ها خیلی کم بشه . مثلا یک اکتیویتی باشه و با هر بار زدن روی دکه next عکس و موزیک اکتیویتی تغییر کنه.و این همه اکتیویتی هم نداشته باشیم؟ 
پاسخ

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

#10
دستور زیر را باید از آن قسمت قبلی بردارید و به جای عبارتی که گفتید بنویسید :

کد پی‌اچ‌پی:
finish(); 

یعنی از آنجا حذف می شود و در روش onPause به شکل زیر نوشته می شود :

کد پی‌اچ‌پی:
@Override
        
protected void onPause() {
                
// TODO Auto-generated method stub
                
super.onPause();
                
                
finish();
        } 



(۱۳۹۳/۰۹/۲۲, ۰۲:۴۲ ب.ظ)'alizzz' نوشته: و اگه نتونستم مشکل رو حل کنم،شما پیشنهادی دارید که تعداد اکتیویتی ها خیلی کم بشه . مثلا یک اکتیویتی باشه و با هر بار زدن روی دکه next عکس و موزیک اکتیویتی تغییر کنه.و این همه اکتیویتی هم نداشته باشیم؟ 
 

من ازتون نپرسیدم چرا تعداد زیادی Activity دارید، چون هر کس به روش خودش کد می نویسه و گفتم ممکنه برای مراحل بازی یا ... باشه، اما اگر صرفا برای نمایش تعدادی عکس و پخش موسیقی، از چندین Activity استفاده می کنید، توصیه من این است که تنها از یک Activity استفاده شود (چون اگر مثلا بخواهید تعداد موسیقی ها را به 200 افزایش بدهید، دیگر ادامه برنامه سازی با این روش، مقرون به صرفه نخواهد بود، منظورم از نظر زمان مورد نیاز برای قرار دادن محتوای جدید در برنامه اندروید است).
وقتی تنها یک Activity داشته باشیم، در کدهای Activity ، یک شماره دریافت می شود (هنگام رفتن به Activity ، شماره متناظر با محتوا را به آن ارسال می کنیم)، سپس بر اساس آن، یک عکس نمایش داده می شود و یک موسیقی هم پخش می شود. در مورد ساخت برنامه های اندروید ((محتوا محور))، در کلید زیر صحبت کرده ایم :

کلید شماره 2253

در کلید بالا، بیشتر در مورد متن صحبت کردیم ولی برای شما که با عکس و موسیقی سر و کار دارید، توصه می شود که مثلا نام گذاری فایل های mp3 ، به صورت زیر باشد :

کد پی‌اچ‌پی:
music_1.mp3
music_2
.mp3
music_3
.mp3
...
music_30.mp3 

یعنی پیشوند ثابت و یک پسوند متغیر (به صورت شماره). بعد وقتی که Activity ، مثلا شماره 10 را دریافت می کند، باید فایل music_10.mp3 را پخش کند.
هر کدام از دو ساختار را که انتخاب کردید، حتما روش release را بعد از stop بنویسید تا مشکل دوباره تکرار نشود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#11
با سلام

مشکلم حل شد
از mediaplayer.reset(); به جای relesase استفاده کردم

با تشکر  
پاسخ
 سپاس شده توسط admin

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

#12
(۱۳۹۳/۰۹/۲۲, ۰۴:۲۵ ب.ظ)'admin' نوشته: دستور زیر را باید از آن قسمت قبلی بردارید و به جای عبارتی که گفتید بنویسید :

کد پی‌اچ‌پی:
finish(); 

یعنی از آنجا حذف می شود و در روش onPause به شکل زیر نوشته می شود :

کد پی‌اچ‌پی:
@Override
        
protected void onPause() {
                
// TODO Auto-generated method stub
                
super.onPause();
                
                
finish();
        } 



(۱۳۹۳/۰۹/۲۲, ۰۲:۴۲ ب.ظ)'alizzz' نوشته: و اگه نتونستم مشکل رو حل کنم،شما پیشنهادی دارید که تعداد اکتیویتی ها خیلی کم بشه . مثلا یک اکتیویتی باشه و با هر بار زدن روی دکه next عکس و موزیک اکتیویتی تغییر کنه.و این همه اکتیویتی هم نداشته باشیم؟ 

 

من ازتون نپرسیدم چرا تعداد زیادی Activity دارید، چون هر کس به روش خودش کد می نویسه و گفتم ممکنه برای مراحل بازی یا ... باشه، اما اگر صرفا برای نمایش تعدادی عکس و پخش موسیقی، از چندین Activity استفاده می کنید، توصیه من این است که تنها از یک Activity استفاده شود (چون اگر مثلا بخواهید تعداد موسیقی ها را به 200 افزایش بدهید، دیگر ادامه برنامه سازی با این روش، مقرون به صرفه نخواهد بود، منظورم از نظر زمان مورد نیاز برای قرار دادن محتوای جدید در برنامه اندروید است).
وقتی تنها یک Activity داشته باشیم، در کدهای Activity ، یک شماره دریافت می شود (هنگام رفتن به Activity ، شماره متناظر با محتوا را به آن ارسال می کنیم)، سپس بر اساس آن، یک عکس نمایش داده می شود و یک موسیقی هم پخش می شود. در مورد ساخت برنامه های اندروید ((محتوا محور))، در کلید زیر صحبت کرده ایم :

کلید شماره 2253

در کلید بالا، بیشتر در مورد متن صحبت کردیم ولی برای شما که با عکس و موسیقی سر و کار دارید، توصه می شود که مثلا نام گذاری فایل های mp3 ، به صورت زیر باشد :

کد پی‌اچ‌پی:
music_1.mp3
music_2
.mp3
music_3
.mp3
...سشس
music_30
.mp3 

یعنی پیشوند ثابت و یک پسوند متغیر (به صورت شماره). بعد وقتی که Activity ، مثلا شماره 10 را دریافت می کند، باید فایل music_10.mp3 را پخش کند.
هر کدام از دو ساختار را که انتخاب کردید، حتما روش release را بعد از stop بنویسید تا مشکل دوباره تکرار نشود.



 



 
پاسخ

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

#13
دوست عزیز من هم این مشکل رو داشتم. ربطی به تعداد activity ها نداره.
من این طور حلش کردم که از دستور reset()  استفاده کردم.

وقتی پلیر از یک تعدادی بیشتر play می کرد دیگه برنامه هیچ موسیقی ای رو play نمی کرد. می دونید در اصل وقتی از stop() استفاده کنید فایل به طور کامل از حافظه پاک نمی شه و به نظر من overflow رخ می ده. البته فکر می کنم.

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

کد پی‌اچ‌پی:
clickP MediaPlayer.create(ActivityItems.thisR.raw.btnplayer);
                
clickP.setLooping(false); // Set looping
                
clickP.setVolume(100100);
                
clickP.start();
                try {
                    
Thread.sleep(100);
                }
                catch (
InterruptedException e) {
                    
// TODO Auto-generated catch block
                    
e.printStackTrace();
                }
                
clickP.reset(); 

البته من از thread در برنامه ی خودم استفاده کردم و گفتم هر 10 ثانیه یک بار پلیر رو reset کنه چون فایل من 1 ثانیه بود.
شما می تونید توی onPause تون استفاده کنید البته اگه بدوم play شدن هیچ موسیقی ای back بزنید crash می شه. از try یا استفاده کنید و یا با if این مشکل رو حل کنید.
 

پاسخ

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

#14
(۱۳۹۳/۰۹/۲۱, ۰۱:۱۲ ب.ظ)'alizzz' نوشته: با سلام

یک مشکل عجیب واسه من پیش اومده، کسی می تونه راهنمایی کنه؟

من 50 تا اکتیویتی دارم که تو هر کدوم سه تا  button هست. یکی برای رفتن به اکتیویتی بعدی ، یکی برای پخش موسیقی (که میزان پیشرفت هم روی seekbar مشخص میشه)  و یکی هم برای توقف موسیقی. و زمان موسیقی ها هم کوتاه هستش

مشکل من اینه که وقتی 30 تا از موسیقی ها رو گوش می کنم( چه چند ثانیه چه تا آخر) دیگه با کلیلک روی دکمه پخش دیگه تو هیچ کدوم از اکتیویتی ها موسیقی پخش نمیشه، حتی اگه برنامه رو ببندم و دوباره باز کنم. و برای درست شدن باید حتما برنامه رو دوباره نصب کنم که بعد از نصب دوباره هم بیشتر از 30 تا موسیقی را نمیشه گوش داد

اینم اضافه کنم که فرقی نمیکنه که تو کدوم صفحات به موسیقی گوش دادی. مثلا من تو اکتیویتی 1 موسیقی رو پخش می کنم . بعد تو 3 و بعد 7 و بعد 50 و بعد 31 و... و وقتی که تعداد موسیقی هایی که گوش کردی( چه تا آخر موسیقی و چه فقط چند ثانیه اش) به 30 تا برسه دیگه  دکمه های پخش کار نمیکنه و هیچ چیزی پخش نمیشه و seekbar هم هیچ پیشرفتی نداره. ولی میتونی به اکتیویتی بعدی و قبلی رفت.فقط نمیدونم چرا دیگه موسیقی پخش نمیکنه

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

 

با reset() نتیجه می گیرید.
player.reset

 
پاسخ

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

#15
سلام من هم یه مشکل یکم مشابه همین دارم . در اکتیویتی تعدادی دکمه دارم که در هر کدام از دکمه ها یه اهنگ یک ثانیه ای هست ولی وقتی بعداز چندبار اشاره روی دکمه ها .دیگر آهنگ ها پخش نمی شود . چکار باید کنم؟؟؟
پاسخ

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

#16
من از reset استفاده کردم ولی دیگه با لمس روی دکمه ها صدایی پخش نمیشه از همون اولش . چرا؟ اینم کدش . ممنون میشم راهنمایی کنید

کد پی‌اچ‌پی:
b8.setOnClickListener(new OnClickListener() {
    
    
@Override
    public void onClick
(View arg0) {
        // TODO Auto-generated method stub
          player MediaPlayer.create(saf1.thisR.raw.ha8);
         
          player
.setVolume(100100);
         
           
           player
.start();
           player.reset();
    }
}); 
پاسخ

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

#17
(۱۳۹۴/۰۹/۰۶, ۰۲:۲۸ ق.ظ)'حمید' نوشته: من از reset استفاده کردم ولی دیگه با لمس روی دکمه ها صدایی پخش نمیشه از همون اولش . چرا؟ اینم کدش . ممنون میشم راهنمایی کنید

کد پی‌اچ‌پی:
b8.setOnClickListener(new OnClickListener() {
    
    
@Override
    public void onClick
(View arg0) {
        // TODO Auto-generated method stub
          player MediaPlayer.create(saf1.thisR.raw.ha8);
         
          player
.setVolume(100100);
         
           
           player
.start();
           player.reset();
    }
}); 

 

سلام.
روش reset در زمان توقف موسیقی به کار می رود، اما شما آن را دقیقا بعد از روش start (شروع پخش موسیقی) نوشته اید، پس در یک زمان خیلی کوتاه، موسیقی شروع و متوقف می شود (عملا موسیقی پخش نمی شود).
ارسال های قبلی را با دقت بخوانید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#18
ببخشید من قبل از reset باید چه کدی بنویسم که دچار مشکل نشوم .و دکمه ها هم بعداز چندبار اشاره صدای موزیکشون قطع نشه.؟؟؟ با سپاس
پاسخ

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

#19
از روش thread هم استفاده کردم اما وقتی ثانیه شو کم میکنم با لمس روی دکمه موزیک زود قطع میشود . و وقتی ثانیه شو زیاد میکنم دکمه تا زمان سپری شدن ثانیه ها فرو میره و دکمه های دیگه هم غیر فعال میشن . با این کد . ممنون میشم

کد:
player.start();
                try {
                    Thread.sleep(100);
                }
                catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
player.reset();
پاسخ

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

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

 
پاسخ

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

#21
(۱۳۹۴/۰۹/۰۶, ۰۵:۲۴ ق.ظ)'حمید' نوشته: از روش thread هم استفاده کردم اما وقتی ثانیه شو کم میکنم با لمس روی دکمه موزیک زود قطع میشود . و وقتی ثانیه شو زیاد میکنم دکمه تا زمان سپری شدن ثانیه ها فرو میره و دکمه های دیگه هم غیر فعال میشن . با این کد . ممنون میشم


کد:
player.start();
                try {
                    Thread.sleep(100);
                }
                catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
player.reset();

تفاوتی نکرد. شما موسیقی را پخش می کنید، 0.1 ثانیه توقف thread و بعد کد توقف موسیقی، بنابراین موسیقی اصلا پخش نمی شود (0.1 ثانیه پخش). 
شما کد زیر را تنها در زمانی که می خواهید موسیقی متوقف شود (مثلا هنگام اشاره روی یک دکمه یا ...)، اجرا نمایید (نه دقیقا بعد از کدهای پخش موسیقی) :

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

در واقع کد زیر برای توقف باید به کار رود (در محل مناسب که مربوط به توقف موسیقی است) :

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

قبل از شروع پخش آهنگ بعدی، آهنگ قبلی (یا در واقع MediaPlayer) را stop و reset می کنید و بعد آهنگ بعدی را پخش می نمایید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

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

#22
ببخشید منظور من اینه که من یه برنامه نوشتم مانند برنامه پیانو که داخل هر دکمه ش یه آهنگ دو ثانیه ای هست . ولی بعداز چندبار اشاره بر روی دکمه ها دیگه با لمس بر روی دکمه ها هیچ آهنگی پخش نمیشه . باید چه کدی و کجا به کار ببرم که آهنگ دکمه ها بعداز چندبار اشاره شدن قطع نشه؟؟؟؟ اگه میشه کامل توضیح بدبد. ممنون
پاسخ

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

#23
بچه ها ممنون میشم یکی منو راهنمایی کنه
بخشید منظور من اینه که من یه برنامه نوشتم مانند برنامه پیانو که داخل هر دکمه ش یه آهنگ دو ثانیه ای هست . ولی بعداز چندبار اشاره بر روی دکمه ها دیگه با لمس بر روی دکمه ها هیچ آهنگی پخش نمیشه . باید چه کدی و کجا به کار ببرم که آهنگ دکمه ها بعداز چندبار اشاره شدن قطع نشه؟؟؟؟ اگه میشه کامل توضیح بدبد. ممنون
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان