zoukankan      html  css  js  c++  java
  • mp3播放器(六)(播放功能实现)

      1 package com.example.mp3player00;
      2 
      3 import java.io.File;
      4 
      5 import model.Mp3Info;
      6 import android.app.Activity;
      7 import android.content.Intent;
      8 import android.media.MediaPlayer;
      9 import android.net.Uri;
     10 import android.os.Bundle;
     11 import android.os.Environment;
     12 import android.view.View;
     13 import android.view.View.OnClickListener;
     14 import android.widget.ImageButton;
     15 
     16 public class PlayerActivity extends Activity{
     17     ImageButton startButton=null;
     18     ImageButton pauseButton=null;
     19     ImageButton stopButton=null;
     20     MediaPlayer mediaPlayer=null;
     21     private boolean isPlaying=false;
     22     private boolean isPause=false;
     23     private boolean isReleased=false;
     24     Mp3Info mp3Info=null;
     25     @Override
     26     protected void onCreate(Bundle savedInstanceState) {
     27         // TODO Auto-generated method stub
     28         super.onCreate(savedInstanceState);
     29         setContentView(R.layout.player);
     30         Intent intent=getIntent();
     31          mp3Info=(Mp3Info) intent.getSerializableExtra("mp3Info");
     32         startButton=(ImageButton)findViewById(R.id.start);
     33         pauseButton=(ImageButton)findViewById(R.id.pause);
     34         stopButton=(ImageButton)findViewById(R.id.stop);
     35         startButton.setOnClickListener(new startButtonListener());
     36         pauseButton.setOnClickListener(new pauseButtonListener());
     37         stopButton.setOnClickListener(new stopButtonListener());
     38         
     39         
     40     }
     41     class startButtonListener implements OnClickListener{
     42 
     43         @Override
     44         public void onClick(View arg0) {
     45             // TODO Auto-generated method stub
     46             if(!isPlaying){//如果不在播放
     47                 String path=getMp3Path(mp3Info);
     48                 mediaPlayer=MediaPlayer.create(PlayerActivity.this, Uri.parse("file://"+path));
     49                 mediaPlayer.setLooping(false);
     50                 mediaPlayer.start();
     51                 isPlaying=true;
     52                 isReleased=false;
     53             }
     54         }
     55         
     56     }
     57     class pauseButtonListener implements OnClickListener{
     58 
     59         @Override
     60         public void onClick(View v) {
     61             // TODO Auto-generated method stub
     62             if(!isPause){
     63                 //如果当前不在暂停
     64                 mediaPlayer.pause();
     65                 isPause=true;
     66                 isPlaying=false;
     67             }
     68             //如果当前在暂停的状态
     69             else{
     70                 mediaPlayer.start();
     71                 isPause=false;
     72                 isPlaying=true;
     73             }
     74         }
     75         
     76     }
     77     class stopButtonListener implements OnClickListener{
     78 
     79         @Override
     80         public void onClick(View v) {
     81             // TODO Auto-generated method stub
     82             if(isPlaying){
     83                 if(!isReleased){
     84                     mediaPlayer.stop();
     85                     mediaPlayer.release();//释放掉资源,当不再使用mediaPlayer
     86                     isReleased=true;
     87                 }
     88                 isPlaying=false;
     89             }
     90             
     91         }
     92         
     93     }
     94     private String getMp3Path(Mp3Info mp3Info)
     95     {
     96         String SDCardRoot=Environment.getExternalStorageDirectory().getAbsolutePath();
     97         String Path=SDCardRoot+File.separator+"mp3"+File.separator+mp3Info.getMp3Name();
     98         return Path;
     99         
    100     }
    101     
    102     
    103     
    104 
    105 }
  • 相关阅读:
    NOIP知识点&&模板整理【更新中】
    qbxt DAY7 T4
    qbxt DAY7 T2
    qbxt DAY 6 T3 柯西不等式和拉格朗日不等式
    qbxt DAY4 T4
    qbxt DAY4 T3
    #98. 表达式计算 杂想
    扫描线入门学习笔记 (主要讲解代码实现)
    学OI要知道的基础知识(咕咕咕)
    主定理学习笔记(总结向)
  • 原文地址:https://www.cnblogs.com/kyxyes/p/3406175.html
Copyright © 2011-2022 走看看