已阅读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年中国油石磨头市场调查研究报告
- 2025年中国无油润油压缩机市场调查研究报告
- 2025年中国人造玛瑙卫生洁具市场调查研究报告
- 护理健康政策与改革
- 管路护理中的心理支持
- 异位妊娠护理中的健康教育
- 护理讲师信息化教学工具应用
- 护理案例分析课件
- 左心衰常用护理技术操作
- 2026-2032年中国成人拉拉裤行业市场全景分析及产业需求研判报告
- 2026年春季学期“凝心聚力冲刺高考”高三年级工作总结:精准备考冲刺理想大学
- 2025年湖南高考语文试题及答案
- 全面同工同酬申请书
- 吊车拆除铁塔专项施工方案(模版)
- 2025年1月浙江省普通高中学业水平考试思想政治试卷(含答案详解)
- DB50∕T 1886-2025 特殊健康状态儿童预防接种服务规范
- 职称英语考试理工类(C级)试题及答案
- 雨污水管道施工应急预案
- DB37∕T 4393-2021 政务信息化项目 验收材料编制指南
- 2025年生态环境监测详细作业指导书(水和废水第3部分)
- 2025年新版二建继续教育(市政公用工程)题库(有答案)
评论
0/150
提交评论