美文网首页
MediaPlayer-播放MP3文件

MediaPlayer-播放MP3文件

作者: 见哥哥长高了 | 来源:发表于2019-07-19 14:55 被阅读0次

    MP3文件的播放功能非常的普遍,其中一种简单的播放方式就是利用MediaPlayer类来实现。

    其具体实现如下:
    初始化一个MediaPlayer对象;
    利用MediaPlayer.create()方法来创建一个播放器的资源;
    调用MediaPlayer的start/pause/stop方式实现播放状态调节。

    具体实现代码:

    public class MainActivity extends AppCompatActivity {
    
    
        //显示播放的状态
        private TextView textView;
    
        //三个按钮控制播放的壮态
        private ImageButton play,pause,stop;
    
        //播放器对象
        private MediaPlayer mediaPlayer;
    
        //表示暂停与否
        private boolean isPause = false;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            //取得对应显示元素
            textView = (TextView)findViewById(R.id.textview);
            
            play = (ImageButton)findViewById(R.id.imagebutton_play);
    
            pause = (ImageButton)findViewById(R.id.imagebutton_pause);
    
            stop = (ImageButton)findViewById(R.id.imagebutton_stop);
    
    
            //初始化对象 
            mediaPlayer = new MediaPlayer();
    
            mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.yinyue);
    
    
            //播放按钮的点击
            play.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    try {
    
                        if (mediaPlayer != null){
    
                            mediaPlayer.stop();
    
                        }else {
    
                            mediaPlayer = new MediaPlayer();
    
                            mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.yinyue);
    
                        }
                        //在mediaPlayer取得播放资源与停止stop()之后
                        //要准备PlayBack之前一定要使用MediaPlayer.prepare()
    
                        mediaPlayer.prepare();
    
                        //开始或恢复播放
                        mediaPlayer.start();
    
                        //改变状态显示
                        textView.setText("播放中...");
    
                    } catch (IOException e) {
    
                        e.printStackTrace();
    
                    }
                }
            });
    
    
            //暂停播放的按钮的点击
            pause.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    try {
    
                        if (mediaPlayer != null){
    
                            //判断是不是播放状态
    
                            if (isPause == false){  // 正在播放
    
                                mediaPlayer.pause();
    
                                isPause = true;
    
                                textView.setText("暂停中...");
    
                            }else if(isPause == true){ //暂停
    
                                mediaPlayer.start();
    
                                isPause = false;
    
                                textView.setText("播放中...");
    
                            }
    
                        }
    
                    }catch (Exception e){
    
                        e.printStackTrace();
                    }
                }
            });
    
            //停止按钮点击
            stop.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    
                    try{
                        if (mediaPlayer != null){
    
                            mediaPlayer.stop();
    
                            textView.setText("停止中...");
                        }
    
                    }catch (Exception e){
    
                        e.printStackTrace();
    
                    }
                }
            });
    
            //播放完毕后 会运行Listener,覆盖文件播放完毕的Listener更改状态显示
            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
    
                    try{
    
                        // 解除资源与MediaPlayer的赋值关系 让资源可以被其他程序运用
                        mediaPlayer.release();
    
                        textView.setText("播放完毕");
    
                    }catch (Exception e){
    
                        textView.setText("");
                        e.printStackTrace();
    
                    }
                }
            });
    
    
            //播放出错时候 会运行Listener 覆盖错误处理事件 更新播放状态显示
            mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
                @Override
                public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
    
                    try {
    
                        //发生错误的时候 解除资源与MediaPlayer的赋值关系 让资源可以被其他程序运用
                        mediaPlayer.release();
    
                    }catch (Exception e){
    
                        e.printStackTrace();
                    }
    
    
                    return false;
                }
            });
    
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:MediaPlayer-播放MP3文件

          本文链接:https://www.haomeiwen.com/subject/lrxslctx.html