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"/>
相关推荐
3. **API接口**:MMI为开发者提供了丰富的API接口,这些接口使得应用程序能够调用多媒体硬件的功能,如摄像头控制、音频播放、视频编码等。学习这些接口的使用方法对于开发MTK平台的应用至关重要。 4. **性能优化**...
通过MMI,开发者可以创建各种多媒体应用,如音乐播放器、视频编辑器、相册应用等。以音乐播放器为例,开发者需要利用Audio Framework来播放音频文件,控制播放、暂停、停止等操作,并可能需要实现自定义音效。 总之...
MTK MMI,全称为MediaTek Multimedia Interface,是联发科(Mediatek)推出的一种针对其芯片平台的多媒体交互接口。这个"mtk mmi sample"是一个开发示例,提供了源代码,帮助开发者理解和实现与MTK芯片进行交互的...
MTK MMI,全称为MediaTek Multimedia Interface,是联发科(Mediatek)推出的一种用于管理多媒体设备和接口的技术。这个技术主要用于智能手机和平板电脑等移动设备,它为设备提供了丰富的多媒体功能支持,包括图像、...
MTK MMI,全称为MediaTek Multimedia Interface,是联发科(Mediatek)推出的一种多媒体交互接口,主要用于其芯片平台上的设备与应用之间的通信。这个技术涵盖了多种功能,旨在优化移动设备的多媒体体验,包括音频、...
3. MMI功能:MMI提供了电话、短信、多媒体播放、设置等多种功能的界面,同时支持触控、按键等多种输入方式。在现代智能设备中,还可能包括指纹识别、面部识别等生物识别技术的集成。 4. MMI开发:MMI的开发涉及UI...
MTK平台是一个高度集成的移动设备解决方案,它包含了处理器、调制解调器、多媒体引擎、通信接口等多个关键组件。其架构通常包括硬件层、驱动层、系统层和应用层。硬件层是物理设备,驱动层负责与硬件交互,系统层...
多媒体接口(Multimedia Interface,简称MMI)架构是现代智能设备、车载信息系统以及各种人机交互界面设计中的关键组成部分。它旨在提供高效、用户友好的方式来控制和交互数字系统。本篇将深入探讨MMI架构的开发过程...
MTK平台相关资料可能涵盖了多个方面,包括硬件规格、软件开发、驱动程序、电源管理、射频技术、调制解调器功能、以及针对不同操作系统(如Android)的定制化解决方案。这些资料对于开发者、工程师以及对MTK平台有...
这些平台通常包含嵌入式操作系统、协议栈、MMI(Man-Machine Interface,人机交互界面)和应用程序接口(API),支持硬件驱动和硬件设备,以及提供友好用户界面。 总的来说,手机开发涉及多个层面,包括硬件和软件...
在Android系统中,MTK提供了一些特有的服务和API,比如MMI(MediaTek Multimedia Interface),这是一个用于控制多媒体硬件的接口。在教程中,可能会讲解如何使用MMI进行音频、视频的播放与录制,以及摄像头的调用。...
- **3.5 MMICode:** 用于处理多媒体信息交互。 - **3.6 ServiceStateTracker:** 监控服务状态,如信号强度等。 - **3.7 DataConnectionTracker:** 跟踪数据连接的状态变化。 - **3.8 APN 的使用:** 访问点名称...
中间件层是系统的核心,提供各种服务接口,如通讯、多媒体、电源管理等。应用层则包含各种用户界面和功能应用,如电话、短信、浏览器等。 2. 编译过程 在MTK平台上,编译通常涉及构建系统、编译脚本和依赖关系管理...
框架位于RTOS和驱动程序之上,为应用程序开发提供统一的接口,包括窗口管理、菜单、按钮、消息框、对话框等元素,有时还会结合特定工具来处理图像、音乐和动画等内容。例如MiniGUI,以及各大公司自有的框架解决方案...
这些API可能是基于标准的Android API进行扩展的,也可能包含MTK特有的功能,如电源管理、多媒体处理等。 5. **系统集成**:MTK平台的开发不仅涉及单个组件,还包括整个系统的集成。文档会解释如何配置和优化系统级...
7. **应用程序接口(API)**:展讯可能会提供特定的API供开发者调用,这些API可能涉及硬件访问、系统服务、多媒体处理等功能。了解和熟练使用这些API是成功开发的关键。 8. **安全性和稳定性**:移动设备的安全性和...
MTK平台软件架构简介是基于联发科技的多媒体手机平台,旨在提供一个完整的软件架构解决方案。该架构由三个主要组成部分组成:MS (Mobile Station) 执行软件、META (Mobile Engineering Testing Architecture) 和...