• android 音乐播放器简单实现


    package com.zhangbz.musicplayer;
    
    import java.io.File;
    
    import android.app.Activity;
    import android.media.AudioManager;
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnCompletionListener;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private EditText et_path;
        private MediaPlayer mediaPlayer;
        private Button bt_play, bt_pause, bt_stop, bt_replay;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            et_path = (EditText) findViewById(R.id.et_path);
            bt_play = (Button) findViewById(R.id.bt_play);
            bt_pause = (Button) findViewById(R.id.bt_pause);
            bt_replay = (Button) findViewById(R.id.bt_replay);
            bt_stop = (Button) findViewById(R.id.bt_stop);
        }
        /**
         * 播放
         * @param view
         */
        public void play(View view) {
            String filepath = et_path.getText().toString().trim();
            File file = new File(filepath);
            if(file.exists()) {
    
                try {
                    mediaPlayer = new MediaPlayer();
                    mediaPlayer.setDataSource(filepath);//设置播放的数据源
                    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    mediaPlayer.prepare();//准备开始播放,播放的逻辑是c代码在新的线程执行。
                    mediaPlayer.start();
                    bt_play.setEnabled(false);
                    mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
                        
                        public void onCompletion(MediaPlayer arg0) {
                            bt_play.setEnabled(true);
                        }
                    });
                } catch (Exception e) {
                    Toast.makeText(this, "播放失败", 0).show();
                    e.printStackTrace();
                }
            } else {
                Toast.makeText(this, "文件不存在,请检查文件路径", 0).show();
            }
        }
        /**
         * 暂停
         * @param view
         */
        public void pause(View view) {
            if("继续".equals(bt_pause.getText().toString().trim())) {
                mediaPlayer.start();
                bt_pause.setText("暂停");
                return;
            }
            if(mediaPlayer != null && mediaPlayer.isPlaying()) {
                mediaPlayer.pause();
                bt_pause.setText("继续");
            }
        }
        /**
         * 停止
         * @param view
         */
        public void stop(View view) {
            if(mediaPlayer != null && mediaPlayer.isPlaying()) {
                mediaPlayer.stop();
                mediaPlayer.release();
                mediaPlayer = null;
            }
            bt_pause.setText("暂停");
            bt_play.setEnabled(true);
        }
        /**
         * 重播
         * @param view
         */
        public void replay(View view) {
            if(mediaPlayer != null && mediaPlayer.isPlaying()) {
                mediaPlayer.seekTo(0);
            } else {
                play(view);
            }
            bt_replay.setText("暂停");
        }
    }
    #学习笔记,如有谬误,敬请指正。#
  • 相关阅读:
    数学—快速幂
    离散化
    造树计划——线段树
    Python map()函数
    python的discard和remove方法
    C++学习笔记之NULL vs nullptr
    哈姆雷特单词的排名
    读书笔记—《网络是怎么连接的》4.11
    滑动窗口—UVA11572 唯一的雪花 Unique Snowflakes
    javascript基础语法1.0
  • 原文地址:https://www.cnblogs.com/happyhacking/p/4152039.html
Copyright © 2020-2023  润新知