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

راهنمایی برای متوقف کردن پخش رادیو

kamal_hajatmand  10 سال پیش  10 سال پیش
+1 0

با سلام

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

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

کد های اکتیویتی : 

 public class RadioActivity extends Activity implements OnClickListener {

    // ابزار های مورد استفاده
    public static ProgressBar playSeekBar;
    public static ImageView   buttonPlay;
    public static ImageView   buttonStopPlay;
    public static ImageView   buttonPause;


    // public static MediaPlayer player;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.radio);

        initializeUIElements();

        PlayFunc.initializeMediaPlayer();
    }


    //مقدار دهی ابزار ها
    private void initializeUIElements() {
        playSeekBar = (ProgressBar) findViewById(R.id.seekBar1);
        playSeekBar.setMax(100);

        buttonPlay = (ImageView) findViewById(R.id.imageView1);

        buttonStopPlay = (ImageView) findViewById(R.id.imageView3);

        buttonPause = (ImageView) findViewById(R.id.imgPause);

        if (G.play) {
            Toast.makeText(RadioActivity.this, "رادیو در حال پخش است", Toast.LENGTH_LONG).show();
            buttonPlay.setEnabled(false);
            playSeekBar.setVisibility(View.VISIBLE);
            buttonPause.setEnabled(true);
            buttonStopPlay.setEnabled(true);
            buttonStopPlay.setOnClickListener(this);
            buttonPause.setOnClickListener(this);

        } else {
            playSeekBar.setVisibility(View.INVISIBLE);

            buttonPlay.setOnClickListener(this);

            buttonStopPlay.setEnabled(false);
            buttonStopPlay.setOnClickListener(this);

            buttonPause.setEnabled(false);
            buttonPause.setOnClickListener(this);
        }

    }


    //ایجاد رویداد کلیک
    @Override
    @SuppressLint("ShowToast")
    public void onClick(View v) {
        if (v == buttonPlay) {

            if (PlayFunc.player.isPlaying()) {
                buttonPlay.setEnabled(false);
                Toast.makeText(RadioActivity.this, "درحال پخش", Toast.LENGTH_LONG).show();

            } else {
                PlayFunc.startPlaying();
                Toast.makeText(RadioActivity.this, "درحال بارگذاری", Toast.LENGTH_LONG).show();
            }
        } else if (v == buttonStopPlay) {
            Toast.makeText(RadioActivity.this, "متوقف کردن پخش", Toast.LENGTH_LONG).show();
            PlayFunc.stopPlaying();
        } else if (v == buttonPause) {
            Toast.makeText(RadioActivity.this, "متوقف کردن ", Toast.LENGTH_LONG).show();
            PlayFunc.pausePlaying();
        }
    }

کدهای تابع : 

 

 public class PlayFunc {

    public static MediaPlayer player;


    public static void startPlaying() {
        G.play = true;
        RadioActivity.buttonStopPlay.setEnabled(true);
        RadioActivity.buttonPause.setEnabled(true);
        RadioActivity.buttonPlay.setEnabled(false);

        RadioActivity.playSeekBar.setVisibility(View.VISIBLE);

        player.prepareAsync();

        player.setOnPreparedListener(new OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer mp) {
                player.start();
            }
        });

    }


    //کدهای دکمه استاپ
    public static void stopPlaying() {
        if (player.isPlaying()) {
            player.stop();
            player.release();
            initializeMediaPlayer();
            G.play = false;

        }

        //نمایش سیک بار و دکمه استاپ
        RadioActivity.buttonPlay.setEnabled(true);
        RadioActivity.buttonPause.setEnabled(false);
        RadioActivity.buttonStopPlay.setEnabled(false);
        RadioActivity.playSeekBar.setVisibility(View.INVISIBLE);
    }


    //کدهای دکمه پاز
    public static void pausePlaying() {
        if (player.isPlaying()) {
            player.pause();

            player.release();
            initializeMediaPlayer();
            G.play = false;

        }

        //نمایش سیک بار و دکمه استاپ
        RadioActivity.buttonPlay.setEnabled(true);
        RadioActivity.buttonStopPlay.setEnabled(false);
        RadioActivity.buttonPause.setEnabled(false);
        RadioActivity.playSeekBar.setVisibility(View.VISIBLE);
    }


    public static void initializeMediaPlayer() {
        player = new MediaPlayer();
        try {
            player.setDataSource("http://217.174.238.20:8000/music.mp3");
        }
        catch (IllegalArgumentException e) {
            e.printStackTrace();
        }
        catch (IllegalStateException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {

            @Override
            public void onBufferingUpdate(MediaPlayer mp, int percent) {
                RadioActivity.playSeekBar.setSecondaryProgress(percent);
                Log.i("Buffering", "" + percent);
            }
        });
    }

}

و یه کلاس G که در آن متغیر play تعریف شده .

 

 

0 0
آیا یاری دهنده ای نیست مرا یاری کنی ؟ (10 سال پیش)
0 0
کل کد رو بررسی نکردم ولی در همون ابتدا نیازی به static قرار دادن ابزار های مورد نیاز نبود (10 سال پیش)
+1 0
با نگاه بیشتر متوجه شدم خیلی بد از static استفاده کردید و حدس میزنم معنی static رو درک نکرده باشید. در ضمن کلاس بندی هایی که انجام دادید اصلا بر اصولی پایدار نیست ولی دلیل این مشکل نمی تونه باشه، موفق باشید (10 سال پیش)
0 0
دوست عزیز برای درک اصولی این موضوع کدوم قسمت از آموزش استاد رو ببینم ؟ و اگه منبع دیگری میشناسید لطفا معرفی کنید. ولی من فک نمیکنم دلیل مشکل اینا باشه ، لطف میکنید دلیل مشکل رو هم به بنده بگویید. (10 سال پیش)
0 0
سلام.ببخشید من ازتون سوال داشتم .برای تنظیم فرکانس رادیو شما می تونین کمکم کنین؟ (10 سال پیش)
0 0
سلام ، کدی که من نوشته بودم با فرکانس کار نمیکرد ، بلکه رادیو به صورت اینترنتی پخش می شد. (10 سال پیش)
0 0
راه حلی براش سراغ ندارین؟ (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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