Online radio streaming app for Android

前端 未结 3 1521
北恋
北恋 2020-11-28 17:52

I\'m building an Android app that will stream several radio stations from a Latin Country, there is like 10 stations that I know can be played in android, I got the URL\'s f

3条回答
  •  情书的邮戳
    2020-11-28 18:17

    So I found this sample and it works for me, here it is if you have the same issue:

    in myMain.java

    import android.app.Activity;
    import android.os.Bundle;
    
    import java.io.IOException;
    
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnBufferingUpdateListener;
    import android.media.MediaPlayer.OnPreparedListener;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ProgressBar;
    
    public class myMain extends Activity implements OnClickListener {
    
        private ProgressBar playSeekBar;
    
        private Button buttonPlay;
    
        private Button buttonStopPlay;
    
        private MediaPlayer player;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            initializeUIElements();
    
            initializeMediaPlayer();
        }
    
        private void initializeUIElements() {
    
            playSeekBar = (ProgressBar) findViewById(R.id.progressBar1);
            playSeekBar.setMax(100);
            playSeekBar.setVisibility(View.INVISIBLE);
    
            buttonPlay = (Button) findViewById(R.id.buttonPlay);
            buttonPlay.setOnClickListener(this);
    
            buttonStopPlay = (Button) findViewById(R.id.buttonStopPlay);
            buttonStopPlay.setEnabled(false);
            buttonStopPlay.setOnClickListener(this);
    
        }
    
        public void onClick(View v) {
            if (v == buttonPlay) {
                startPlaying();
            } else if (v == buttonStopPlay) {
                stopPlaying();
            }
        }
    
        private void startPlaying() {
            buttonStopPlay.setEnabled(true);
            buttonPlay.setEnabled(false);
    
            playSeekBar.setVisibility(View.VISIBLE);
    
            player.prepareAsync();
    
            player.setOnPreparedListener(new OnPreparedListener() {
    
                public void onPrepared(MediaPlayer mp) {
                    player.start();
                }
            });
    
        }
    
        private void stopPlaying() {
            if (player.isPlaying()) {
                player.stop();
                player.release();
                initializeMediaPlayer();
            }
    
            buttonPlay.setEnabled(true);
            buttonStopPlay.setEnabled(false);
            playSeekBar.setVisibility(View.INVISIBLE);
        }
    
        private void initializeMediaPlayer() {
            player = new MediaPlayer();
            try {
                player.setDataSource("http://usa8-vn.mixstream.net:8138");
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
    
                public void onBufferingUpdate(MediaPlayer mp, int percent) {
                    playSeekBar.setSecondaryProgress(percent);
                    Log.i("Buffering", "" + percent);
                }
            });
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            if (player.isPlaying()) {
                player.stop();
            }
        }
    }
    

    in the XML (main.xml) code:

    
    
    
    
    
            
            
    
    
    

    and the android manifest:

    
    
    
    
    
    
        
            
                
                
            
        
    
    
    

提交回复
热议问题