public class mainActivity extends Activity {
// 要播放音乐需要建立一个媒体播放的对象
private MediaPlayer mediaPlayer;
private EditText textFilename;
private Button buttonPause;
//电话接听完以后又开始播放了 所以要重写onRersume方法
//这里面重写生命周期的三个方法
@Override
protected void onPause() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
buttonPause.setText(R.string.resume);
}
super.onPause();
}
@Override
protected void onResume() {
if(!mediaPlayer.isLooping()){
mediaPlayer.start();
buttonPause.setText(R.string.pause);
}
super.onResume();
}
//在activtiy关闭的时候进行资源释放
@Override
protected void onDestroy() {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
mediaPlayer.release();
super.onDestroy();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 注意 多个按钮的情况下采用公共的对象来处理电击事件
Button buttonPlay = (Button) findViewById(R.id.play);
Button buttonPause = (Button) findViewById(R.id.pause);
Button buttonStrop = (Button) findViewById(R.id.stop);
buttonPause.setOnClickListener(new onClick());
buttonPlay.setOnClickListener(new onClick());
buttonStrop.setOnClickListener(new onClick());
// 得到文本(MP3)的来源
textFilename = (EditText) findViewById(R.id.filename);
// 完成对media对象的初始化
mediaPlayer = new MediaPlayer();
}
// 这个地方需要注意了 onClick实现View.OnClickListener
private class onClick implements View.OnClickListener {
@Override
public void onClick(View v) {
try {
switch (v.getId()) {
case R.id.play: // 来自播放按钮
// 重设里面的参数让它还原
mediaPlayer.reset();
// 设置数据来源
mediaPlayer.setDataSource("/sdcard/" + textFilename);
//需要先缓冲一下
mediaPlayer.prepare();
mediaPlayer.start();
break;
case R.id.pause: // /来自暂停按钮
if(mediaPlayer.isPlaying()){
mediaPlayer.pause();
buttonPause.setText(R.string.resume);
}else{
mediaPlayer.start();
buttonPause.setText(R.string.pause);
}
break;
case R.id.stop: // 来自停止按钮
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
总结 需要注意的地方
用try{
switch(){
Case:
//省略
Break;
}
}catch(Exception e){
e.printStackTrace():
}
重点注意一点 按钮上的文字是可以变化的
配置中 android:text @String/button;
android:id @id+/button;
//改变显示的字体代码
pauseButton.setText(R.id.button);
如果这个播放器在播放的时候来了一个电话 那么需要提供生命周期方法
Onpause()来实现的
因为这里要方法sd卡 所以把sd卡的访问权限加进去
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
相关推荐
MTK平台MMI培训教程-(手机开发入门必看)
手把手教你怎么从一个菜鸟成为一个MMI高手,从入门到精通
MMI架构方面的一些知识MMI Platform Source Code Training
MIB2 COMPENENT PROTECTION OFF
数据总线诊断接口-J53连同MMI基本型MMI基本增强型.pdf
佳的美 MMI接口定义图适合没有MMI线的朋友
MTK平台的软件模块详解,包括MMI各个功能模块,是学习MTK的一个很好的参考文档
Mocor MMI U-Disk Interface User Guide.doc 文档说明 本文档描述了U-Disk和SD部分的对外接口,方便其他模块调用U-Disk模块进行开发与使用。 阅读对象 本文档适用于MMI相关开发人员使用。 内容介绍 本文档包括三个...
MMI-Tethys是促进环境系统之间互操作性的框架。 它促进了遵循标准的元数据,数据和Web服务的创建。 它当前基于JAVA,AXIS和ANT。
MMI-Android开发入门(二)
用于检测非洛达改版洛达芯片,黄色图标logo的软件,避免翻车
MTK_MMI实例培训教程1-5.docMTK_MMI实例培训教程1-5.docMTK_MMI实例培训教程1-5.docMTK_MMI实例培训教程1-5.doc
MTK关于 mmi 平日开发的积累arm程序设计优化开机那个m-zone欢迎界面是哪个函数show的啊函数功能收集
富贵的MTK内部培训资料,了解MTK平台必须品。分两部
SM400-MMI
mtk mmi基础及入门。 mtk mmi基础及入门。 mtk mmi基础及入门。 mtk mmi基础及入门。 mtk mmi基础及入门。
MTK_MMI实例培训教程11-13.doc MTK_MMI实例培训教程11-13.doc MTK_MMI实例培训教程11-13.doc MTK_MMI实例培训教程11-13.doc
Mocor MMI BT Interface User Guide ...简单介绍了MMI-Bluetooth接口模块的总体结构框图以及主要实现的功能; 第二章:数据类型。详细介绍了MMI-Bluetooth接口模块的各种数据类型; 第三章:API函数。
介绍手机mmi设计的几大要素