已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用Service制作音乐播放器的步骤:(1)新建工程music,包名:com.music,Activity的名字:MusicActivity。(2) 在res/layout/main.xml中写入如下代码: (3) 放入音乐资源。在res下新建文件夹raw,在该文件夹中发如音乐文件:如:poker_face.mp3注意:a.若新建文件夹名字不为raw,会出错 b音乐文件的名字必须是:az09_.组成,不能有大写字母。(4) 编写MusicActivity,源代码为:package com.music;import android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MusicActivity extends Activity /为日志工具设置标签 private static String TAG = MusicService; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /输出Toast消息和日志记录 Toast.makeText(this, MusicServiceActivity, Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicServiceActivity); initlizeViews(); private void initlizeViews() Log.e(initlizeviews, 初始化界面); Button btnStart = (Button)findViewById(R.id.startMusic); Button btnStop = (Button)findViewById(R.id.stopMusic); Button btnBind = (Button)findViewById(R.id.bindMusic); Button btnUnbind = (Button)findViewById(R.id.unbindMusic); Log.e(MusicActivity, 获得组件ID号); /定义点击监听器 OnClickListener ocl = new OnClickListener() Override public void onClick(View v) /显示指定 intent所指的对象是个 service Log.e(MusicActivity, 点击了启动按钮); Intent intent = new Intent(MusicActivity.this,MusicService.class); switch(v.getId() case R.id.startMusic: /开始服务 Log.e(MusicActivity, 即将启动服务); startService(intent); Log.e(MusicActivity, 启动完毕); break; case R.id.stopMusic: /停止服务 Log.e(MusicActivity, 即将停止服务); stopService(intent); Log.e(MusicActivity, 停止完毕); break; case R.id.bindMusic: /绑定服务 Log.e(MusicActivity, 绑定服务); bindService(intent, conn, Context.BIND_AUTO_CREATE); Log.e(MusicActivity, 绑定完毕); break; case R.id.unbindMusic: /解绑服务 Log.e(MusicActivity, 解除绑定服务); unbindService(conn); Log.e(MusicActivity, 解除完毕); break; ; /绑定点击监听 btnStart.setOnClickListener(ocl); btnStop.setOnClickListener(ocl); btnBind.setOnClickListener(ocl); btnUnbind.setOnClickListener(ocl); /定义服务链接对象 final ServiceConnection conn = new ServiceConnection() Override /Toast.LENGTH_SHORT大概显示时间为1秒, / Toast.LENGTH_LONG大概显示时间为3秒 public void onServiceDisconnected(ComponentName name) Toast.makeText(MusicActivity.this, MusicActivity onSeviceDisconnected , Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicActivity onSeviceDisconnected); Override public void onServiceConnected(ComponentName name, IBinder service) Toast.makeText(MusicActivity.this, MusicServiceActivity onServiceConnected ,Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicServiceActivity onServiceConnected); ;(5) 在src的com.music包下新建类,MusicService.java。该文件的源文件为:package com.music;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.IBinder;import android.util.Log;import android.widget.Toast;public class MusicService extends Service /为日志工具设置标签 private static String TAG = MusicService; /定义音乐播放器变量 private MediaPlayer mPlayer; /该服务不存在需要被创建时被调用,不管startService()还是bindService()都会启动时调用该方法 Override public void onCreate() Log.e(MusicService, -onCreate); Toast.makeText(this, MusicSevice onCreate() , Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicSerice onCreate(); mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.poker_face); if(mPlayer=null) Log.e(mPlayer, -null); else Log.e(mPlayer, -not null); /设置可以重复播放 mPlayer.setLooping(true); Log.e(mPlayer, -setLooping); super.onCreate(); Override public void onStart(Intent intent, int startId) Log.e(MusicService, -onStart); Toast.makeText(this, MusicSevice onStart() , Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicSerice onStart(); mPlayer.start(); super.onStart(intent, startId); Override public void onDestroy() Log.e(MusicService, -onDestroy); Toast.makeText(this, MusicSevice onDestroy() , Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicSerice onDestroy(); mPlayer.stop(); super.onDestroy(); /其他对象通过bindService 方法通知该Service时该方法被调用 Override public IBinder onBind(Intent intent) Log.e(MusicService, -onBind); Toast.makeText(this, MusicSevice onBind() , Toast.LENGTH_SHORT).show(); Log.e(TAG, MusicSerice onBind(); mPlayer.start(); return null; /其它对象通过unbindService方法通知该Service时该方法被调用 Override public boolean onUnbind(Intent intent) Toast.makeText(this, Music
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白云区2025广东广州市白云区事业单位校园招聘优才47人笔试历年参考题库典型考点附带答案详解
- 2027届吉水县六年级数学第一学期期末检测试题含解析
- 肿瘤患者的症状评估与筛查
- 2026人工智能技术应用前景与行业变革研究报告
- 湖北省黄石市黄石港区2027届四上数学期末联考试题含解析
- 汉寿县2027届四上数学期末质量检测试题含解析
- 2026全球与中国环保设备行业市场分析及发展趋势预测研究报告
- 某汽车厂保密协议
- 2026人工智能产业市场详细查询及算法优化与市场应用研究报告
- 2026生物医药产业发展趋势行业分析供需平衡研究投资机会评估未来规划
- 早产的临床诊断与治疗指南(2025年)
- 2026年数据处理服务合同
- 职业病诊断医师资格(物理因素所致职业病类)考前通关必练题库-含答案
- 2025年四川成都兴城投资集团有限公司招聘笔试参考题库附带答案
- 2025年新疆生产建设兵团兴新职业技术学院辅导员招聘笔试试题附答案
- 高压抗燃油EH系统培训
- T∕CNCIA 01043-2025 粉末涂装涂层质量技术要求 农林及工程机械
- 更年期综合征自我管理专家共识2025解读
- DB3211∕T 1078-2024 居民小区邻长制自治团队工作规范
- 工业产品生产、销售单位质量安全总监、安全员培训考核题题库及答案
- 2025年及未来5年中国特种石墨行业市场深度分析及发展前景预测报告
评论
0/150
提交评论