您的位置:首页 > 其它

仿实例开发---一个简单的音乐播放器

2016-09-01 18:40 337 查看
 输入代码:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/filename"
android:id="@+id/textView" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/filename"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/playbutton"
android:onClick="mediaplay"
android:id="@+id/playbutton"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pausebutton"
android:onClick="mediaplay"
android:id="@+id/pausebutton"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/resetbutton"
android:onClick="mediaplay"
android:id="@+id/resetbutton"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stopbutton"
android:onClick="mediaplay"
android:id="@+id/stopbutton"/> <!--点击该按钮执行mediapaly方法-->

</LinearLayout>
</LinearLayout>


string.xml:

<resources>
<string name="app_name">AudioPlayer</string>
<string name="filename">音乐文件名称:</string>
<string name="playbutton">播放</string>
<string name="pausebutton">暂停</string>
<string name="resetbutton">重播</string>
<string name="stopbutton">停止</string>
<string name="filenoexist">文件没有发现</string>
<string name="continues">继续</string>
</resources>


MainActivity.java:
package com.example.haige.audioplayer;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.File;

public class MainActivity extends Activity
{
private EditText nameText;
private String path;
private MediaPlayer mediaPlayer;
private boolean pause;
private int position;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameText=(EditText)findViewById(R.id.filename);
mediaPlayer=new MediaPlayer();
}
protected void onDestroy()
{
mediaPlayer.release();
mediaPlayer=null;
super.onDestroy();
}

/*
当音乐播放器不再前台时,暂停播放,保存原始播放位置
*/
protected void onPause()
{
if(mediaPlayer.isPlaying())
{
position= mediaPlayer.getCurrentPosition();//获取当前播放位置
mediaPlayer.stop();
}
super.onPause();
}

/*
当音乐播放器恢复前台位置,接着播放
*/
protected void onResume()
{
if(position>0&&path!=null)
{
play();
mediaPlayer.seekTo(position);//在原有暂停的位置继续播放
position=0;
}
super.onResume();
}
public void mediaplay(View v)
{
switch (v.getId())
{
case R.id.playbutton:
String filename=nameText.getText().toString();
File audio=new File(Environment.getExternalStorageDirectory(),filename);
if(audio.exists())
{
path=audio.getAbsolutePath();
play();
}
else
{
path=null;
Toast.makeText(getApplicationContext(),R.string.filenoexist,Toast.LENGTH_SHORT).show();
}
break;
case R.id.pausebutton:
if(mediaPlayer.isPlaying())
{
mediaPlayer.pause();//暂停
pause=true;
((Button)v).setText(R.string.continues);
}
else
{
if(pause)
{
mediaPlayer.start();//继续播放音乐
pause=false;
((Button)v).setText(R.string.pausebutton);
}
}
break;
case R.id.resetbutton:
if(mediaPlayer.isPlaying())
{
mediaPlayer.seekTo(0);//设置播放的刻度为0,意为重播
}
else
{
if(path!=null)
{
play();
}
}
break;
case R.id.stopbutton:
if(mediaPlayer.isPlaying())
{
mediaPlayer.stop();
}
break;
}

}

private void play()
{
try
{
mediaPlayer.reset();//把各项参数恢复到最初始的状态
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();//进行缓冲
mediaPlayer.setOnPreparedListener(new PreparedListener());
}
catch (Exception e)
{
e.printStackTrace();
}

}

private final class PreparedListener implements MediaPlayer.OnPreparedListener
{
public void onPrepared(MediaPlayer mp)
{
mediaPlayer.start();//开始播放
}
}

}


总结:一个可以实现音乐播放器基本功能的实例,等将来懂了其他技术再完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: