仿实例开发---一个简单的音乐播放器
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();//开始播放
}
}
}
总结:一个可以实现音乐播放器基本功能的实例,等将来懂了其他技术再完善。
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();//开始播放
}
}
}
总结:一个可以实现音乐播放器基本功能的实例,等将来懂了其他技术再完善。
相关文章推荐
- 仿实例开发----一个简单的视频播放器
- nodejs + express + ejs + mongodb 一个非常简单的前后端开发的实例3
- Struts2开发环境搭建,及一个简单登录功能实例
- 【Qt5开发及实例】13、实现一个简单的文本编辑器2
- Django学习笔记2:一个简单的开发实例
- 一个简单的Java开发WebService实例
- 一个简单涂鸦板的Android开发实例
- 利用jQuery设计一个简单的web音乐播放器的实例分享
- 一个简单的SWT程序实例及详解-Java基础-Java-编程开发
- 一个简单的模拟用户名是否存在的基于契约优先WSDL的webservice开发实例
- 一个简单的jQuery插件开发实例
- 一个简单的hibernate+mysql的实例java/jsp开发
- nodejs + express + ejs + mongodb 一个非常简单的前后端开发的实例
- 一个简单的jQuery插件开发实例
- 利用jQuery设计一个简单的web音乐播放器的实例分享
- 一个使用Ruby on Rails开发LBS网站的简单实例
- 【Qt5开发及实例】15、实现一个简单的文本编辑器4
- cocos2d-x学习(3)---游戏实例开发:一个简单的射击游戏二
- IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
- 一个使用Ruby on Rails开发LBS网站的简单实例