利用Service制作音乐播放器.doc_第1页
利用Service制作音乐播放器.doc_第2页
利用Service制作音乐播放器.doc_第3页
利用Service制作音乐播放器.doc_第4页
利用Service制作音乐播放器.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论